Pattern: API Composition
pattern service collaboration implementing queriesWant to learn more about this pattern?
Take a look at my self-paced, online bootcamp that teaches you how to use the Saga, API Composition, and CQRS patterns to design operations that span multiple services.
The regular price is $395/person but use coupon CCMHVSFB to sign up for $95 (valid until November 8th, 2024)
Context
You have applied the Microservices architecture pattern and the Database per service pattern. As a result, it is no longer straightforward to implement queries that join data from multiple services.
Problem
How to implement queries in a microservice architecture?
Solution
Implement a query by defining an API Composer, which invoking the services that own the data and performs an in-memory join of the results.

Example
An API Gateway often does API composition.
Resulting context
This pattern has the following benefits:
- It a simple way to query data in a microservice architecture
This pattern has the following drawbacks:
- Some queries would result in inefficient, in-memory joins of large datasets.
Related patterns
- The Database per Service pattern creates the need for this pattern
- The CQRS pattern is an alternative solution
See also
Learn more
- My book Microservices patterns describes this pattern in a lot more detail
- Take a look at my self-paced, online bootcamp that teaches you how to use the Saga, API Composition, and CQRS patterns to design operations that span multiple services.
Premium content and office hours is now available for paid subscribers at
