• Each service can be written in one or two weeks

Focused on One Task

  • Separation of Concerns in the Problem Domain
  • Accomplishes one task when viewed from outside

Aligned with a Bounded Context

  • A Bounded Context is a defined part of software where particular terms, definitions and rules apply in a consistent way
  • Each service follows natural ‘Fire-Breaks’ in the Problem Domain


  • We can change implementation without coordinating with others
  • The real value provided by micro-services

Independently Deployable

  • An important aspect of Autonomy
  • Teams that can decide when to deploy are significantly more effective

Loosely Coupled

  • The interface to Micro-service is a Public API
  • It should be changed only with Great Care
  • When consuming the API, use minimum data that you can to reduce coupling
  • We can use versioning to support backward compatibility