mausconi / microservices-cheat-sheet

Cheat sheet for how to build microservices with scale, resilience and success.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

See also: API Design Cheat Sheet, Platform Building Cheat Sheet

Microservices Cheat Sheet

  1. Do only one thing and do it well. The "one thing" is defined by a "Bounded Context" in Domain-Driven Design (DDD).
  2. Own your own data. No shared data stores.
  3. Embrace eventual consistency.
    • Don't read your writes.
    • Publish your own state-changes (minimally) to an event log.
  4. Leverage event logging and/or streaming to replicate and denormalize data from other services.
    • The event log must be subscribable to publish events to subscribers.
    • The event log must be durable and must not lose messages for publishing and replay.
    • Examples: Kafka, Confluent.io, Amazon Kinesis.
  5. When aggregating microservice calls, use asynchronous, non-blocking I/O. Perform as much as possible asynchronously.
  6. Support a registry/discovery mechanism.
  7. Support Location Transparency.
    • Support statelessness--no sticky sessions.
  8. Support the use of back-pressure (see, Reactive Streams specification) to avoid cascading failures.
  9. Support the Circuit Breaker pattern to manage faulty service dependencies.
  10. Consider CQRS to scale reads separately from writes.

About

Cheat sheet for how to build microservices with scale, resilience and success.