> In short, the microservice architectural style is an approach to developing 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. These services are **built around business capabilities** and **independently deployable** by fully automated deployment machinery. There is a **bare minimum of centralized management** of these services, which may be written in different programming languages and use different data storage technologies. [^mf1]
[^mf1]: [Microservices Guide](https://martinfowler.com/microservices/) by [[@Martin Fowler]]
## Microservice concepts
- [[Distributed sagas]]
- [[Lock-step deployment]]
## Building with microservices
- [[Testing microservices]]
- [[How Big Should Microservices Be (video review)]]
## See also
- [[Monolithic architecture]]
- [[The Majestic Monolith (article review)]]
## References
- [Microservices decision tree](https://twitter.com/der_rehan/status/1450044694013022209?s=12) by [[@Rehan van der Merwe]]
- [Hacker news discussion on "Don't Start With Microservices"](https://news.ycombinator.com/item?id=29577336). Original article [here](https://arnoldgalovics.com/microservices-in-production/).
---
tags: #SoftwareEngineering , #SoftwareArchitecture, #MOC