Skip to content
- The term “microservice” is widely discussed and often referred to as a buzzword in the technology industry.
- Microservices are popular due to their scalability, extensibility, and resilience when implemented correctly.
- The conversation aims to address common challenges and best practices for effective use of microservices.
- A favored definition: a microservice is an independently deployable unit focused on performing a single job very well, communicating via clearly defined interfaces.
- Successful microservice design emphasizes complete independence between components.
- Needing to deploy multiple services together frequently suggests incorrect service boundaries or unnecessary coupling.
- Communication between microservices must strictly occur through well-defined interfaces; direct access to another service’s data or memory is not allowed.
- Following Jeff Bezos’s API mandate: no direct linking, data store reads, shared memory, or backdoors; only service interface calls over the network.
- Interface forms may include API calls, message passing, or event-driven mechanisms, but must always maintain clear contracts or schemas.
- It is crucial to never break backwards compatibility for these interfaces.
- Properly implemented microservices foster flexibility—allowing independent team work and rapid, low-risk feature releases.
- Ideally, if one microservice fails, others continue functioning without interruption.
- Service failures should not cascade to impact high-value or unrelated services.
- Building in patterns to manage cascading failures and resilience is necessary at scale; detailed guidance will follow in later modules.
- The high-level microservices overview invites deeper exploration into their detailed implementation.
- Emphasis on thoughtful adoption, ensuring microservices are used only when appropriate and built correctly.