# Overview
An architecture approach where a large application is divided into smaller services by area of functionality. The services interact with one another when they require functionality or data from another service.
# Key Considerations
## Characteristics of a Microservice
- Small
- Small enough to "fit in your head"
- Independently deployable
- Hide implementation details
- An update to service A does not cause an update to service B
- Modeled around business concepts
- Decentralized
- Highly observable
- Autonomous
## Strengths
- Allows for easier application updates and deployment, because each service can be worked on independently
## Weaknesses
- If all microservices need to be run together for work, then the microservice may work more as a distributed monolith
# Implementation Details
# Useful Links
# Related Topics
## Reference
#### Working Notes
#### Sources
#### Topics to Cover
- [[Asynchronous]] vs. [[Synchronous]]
- Design Patterns
- Database Per Service Pattern
- API Gateway Pattern
- [[API Gateway]]
- CQRS
- [[Saga Pattern]]
- BFF Pattern
- Event Sourcing Pattern
- Sidecar Pattern
- Circuit Breaker Pattern
#### Related Topics
- [[Service-oriented Architecture (SOA)]]