Software Architecture Patterns for Product Managers:

K Praveen Kumar Reddy
2 min readMay 8, 2024

--

It is important for PMs in the Tech space to understand the basic architecture patterns for building robust products.

The top six types are as follows :

  1. Layered Architecture
  2. Client-Server Architecture
  3. Event-Driven Architecture
  4. Microservices Architecture
  5. Monolithic Architecture
  6. Microkernel Architecture

Let us expand on the same and understand them a bit better :

1. Layered Architecture :

  • This mechanism focuses on organizing the system into different layers
  • Each layer will have a specific task at hand and assists the above layer
  • Ex : In Web Apps Interface we typically have an MVC(Model-View-Controller) layer approach

The changes made in one layer will not affect the other

2. Client-Server Architecture:

  • The system is bifurcated into two components: Client (Interface) & Server (Request processer)
  • The client usually sends the requests to the server where the computation happens and reverts with a response
  • Generally a scalable mechanism can manage multiple clients simultaneously
  • Variations include : 1-Tier(Logic on Client), 2-Tier(Client speaks with database), 3-Tier (Client-Server with Business logic layer), N-Tier(scalable N layers)

3. Event-Driven Architecture :

  • The components communicate with each other by exchanging events asynchronously
  • When an event occurs anywhere in the system and is published as a message can be consumed by any subscriber (A Pub-Sub Model)
  • This is a loosely coupled architecture and flexible one, real-time collab works very well
Architecture Patterns

4. Microservices Architecture:

  • Made functional parts as services that are very much independent
  • Every service will have its functional cause and can be developed deployed and scaled accordingly
  • APIs (Application Programming Interface) is the medium of communication

5. Monolithic Architecture :

  • Unlike Microservices, a monolith is bundled into one single entity of a large codebase
  • Easiest way to get started but managing it while it keeps growing is difficult
  • A lot of interconnected dependencies to work upon for future development works

6. Microkernel Architecture

  • Core functionalities reside in the kernel and the rest all work as add-ons or plugins

How does one choose an architecture?

It depends on a few parameters like :

  1. Complexity of the system
  2. Performance requirements
  3. Maintainability and scalability needs

#Engineering #ProductManagement #KPKR

--

--

K Praveen Kumar Reddy
K Praveen Kumar Reddy

Written by K Praveen Kumar Reddy

Product Management | Technology Enthusiast | Learner | Writing | Reading |

No responses yet