Microservices
It’s a subset of SOA style that develops a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. Those services are built and deploy independently.
Pros | Cons |
---|---|
Cost effective to scale | Deep learning curve |
Preserve modularity | Sometimes it might be hard to define boundaries |
Availability | Have to pick a messaging mechanism |
Partial deployment | |
Multiple platforms, technology independent | |
Easy adaption to cloud |
Service-Oriented Architecture
It’s an architectural style that is widely adapted by enterprise to build applications as a collection of services.
Pros | Cons |
---|---|
Easier to reuse components as services | High cost in upfront development |
Services as contracts / interfaces | Complex service management |
Scalability with load balancing | |
Upgradation: easier to roll out new version of services |
Monolithic
It is a traditional architecture type which has been widely used in the industry. It is typically technology-focused and has 3 layers for entire application – user interface, business logic and database access, and they’re usually tightly coupled.
Pros | Cons |
---|---|
Simplicity | Very large code base hence hard to make changes |
Consistency | One module failure affecting entire system |
Scalability | |
Inability to easily adapt to new technology |