IntermediateTopic 55 of 104Software & Computing
Microservices
Independent small services communicating over networks.
In depth
Microservices split an application into small independently deployable services communicating via APIs or events, each owning its data. Pros: scaling, team autonomy, technology choice; cons: distributed complexity, latency, consistency, observability. Start with a modular monolith when unsure.
Key points
- Service discovery
- API gateway
- Saga pattern
ExampleAn e-commerce site has separate catalogue, cart, payment and shipping services.
What is Microservices?
Independent small services communicating over networks.
Why is it important to understand microservices?
Microservices let teams develop and deploy parts of a system independently, which helps large systems scale across organisations.
What are the drawbacks of microservices?
More network calls, harder debugging, data consistency challenges and the need for strong monitoring and deployment tooling.
What makes a service independent?
It owns its data, has a clear interface and can be deployed without changing the others.
How is Microservices used in practice?
Typical applications include splitting an online store into separate catalogue, payment and shipping services, scaling only the search service during a sales event and assigning ownership of each service to a separate team.
What should I learn before Microservices?
Study "Software architecture patterns" first (topic 54 of 104 in Software & Computing). It covers the groundwork this topic builds on.
What are the key points of Microservices?
Service discovery. API gateway. Saga pattern.
Can you give an example of Microservices?
An e-commerce site has separate catalogue, cart, payment and shipping services.
What comes after Microservices?
The next topic is "APIs and REST", which builds directly on this one.
How difficult is Microservices?
It is classed as Intermediate in Software & Computing (topic 55 of 104). It is an intermediate topic. Work through the beginner topics in Software & Computing first.