Microservices architecture is more of a concept than a defined architecture with a specific set of requirements. It's a better way to achieve the software, which is built to scale reliably and responsively.
James Lewis and Martin Fowler laid out the following characteristics which typically come with microservices:
- Componentization via services: A component is a unit of software that is independently replaceable and upgradeable. The advantage of using services as components (rather than libraries) in a whole system, is that services are independently deployable.
- Organized around business capabilities: Services directly reflect the business capabilities, and achieve the related business processes ...