About Microservices.io

Microservices.io is brought to you by Chris Richardson. Experienced software architect, author of POJOs in Action and the creator of the original CloudFoundry.com. His latest startup is eventuate.io, a microservices application platform.

Learn more about microservices

Chris offers a comprehensive set of resources for learning about microservices including articles, an O'Reilly training video, and example code. Learn more

Microservices consulting and training

Chris offers a comprehensive consulting services, workshops and hands on training classes to help you use microservices effectively. Get advice

Need training in London?

I'll be there in May!

Contact me

Example microservices applications

Want to see an example? Check out Chris Richardson's example applications. See code

Get the book: Microservice patternsnew

Signup for the newsletter

A new microservices application platform that solves distributed data management problems.

Join the microservices google group

A pattern language for microservices

The beginnings of a pattern language for microservice architectures.


Click here for Chinese translation of the patterns

Core patterns

Which architecture should you choose for an application?


How to decompose an application into services?

Deployment patterns

How to deploy an application’s services?

Cross cutting concerns

How to handle cross cutting concerns?

Communication patterns


Which communication mechanisms do services use to communicate with each other and their external clients?

External API

How do external clients communicate with the services?

Service discovery

How does the client of an RPI-based service discover the network location of a service instance?


How to prevent a network or service failure from cascading to other services?

  • Circuit Breaker - invoke a remote service via a proxy that fails immediately when the failure rate of the remote call exceeds a threshold

Data management

How to maintain data consistency and implement queries?


How to communicate the identity of the requestor to the services that handle the request?

  • Access Tokennew - a token that securely stores information about user that is exchanged between services


How to make testing easier?


How to understand the behavior of an application and troubleshoot problems?

  • Log aggregationnew - aggregate application logs
  • Application metricsnew - instrument a service’s code to gather statistics about operations
  • Audit loggingnew - record user activity in a database
  • Distributed tracingnew - instrument services with code that assigns each external request an unique identifier that is passed between services. Record information (e.g. start time, end time) about the work (e.g. service requests) performed when handling the external request in a centralized service

  • Exception trackingnew - report all exceptions to a centralized exception tracking service that aggregates and tracks exceptions and notifies developers.

  • Health check APInew - service API (e.g. HTTP endpoint) that returns the health of the service and can be pinged, for example, by a monitoring service

UI patterns

How to implement a UI screen or page that displays data from multiple services?

  • Server-side page fragment compositionnew - build a webpage on the server by composing HTML fragments generated by multiple, business capability/subdomain-specific web applications

  • Client-side UI compositionnew - Build a UI on the client by composing UI fragments rendered by multiple, business capability/subdomain-specific UI components

Copyright © 2017 Chris Richardson • All rights reserved • Supported by Kong.