# Microservice Architecture

> Structure your app as a set of small, independently deployable services — each owning its domain.

- **Category**: Microservices
- **Subcategory**: Architecture Style
- **Canonical URL**: https://designpattern.fyi/patterns/microservice_architecture/

---

## Description
Clean, reusable architecture pattern.


## Use Cases
10 teams at a fintech ship independently to prod dozens of times per day. Payments team deploys a new fee engine without touching Auth or Notifications. Each service scales based on its own load.





## Trade-offs


### Advantages

- Independent deployments — one team's release doesn't block others

- Fine-grained scaling — scale only the services under load

- Tech stack freedom per service

- Fault isolation — one service crashing doesn't take down everything

- Small, understandable codebases per service




### Considerations & Drawbacks

- Distributed systems complexity — networking, latency, partial failures

- Cross-service transactions need Saga (no ACID)

- Operational overhead — N services = N deployments, logs, monitoring setups

- Service discovery, load balancing, tracing all need infra investment

- Wrong service boundaries = distributed monolith (worst of both worlds)







---
**Reference**: [Original Source](https://microservices.io/patterns/microservices.html)

