Software Architecture Patterns for Product Managers:
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 :
- Layered Architecture
- Client-Server Architecture
- Event-Driven Architecture
- Microservices Architecture
- Monolithic Architecture
- 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
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 :
- Complexity of the system
- Performance requirements
- Maintainability and scalability needs
#Engineering #ProductManagement #KPKR