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 OFFEFKCW to sign up for $95 (valid until Sept 30th, 2025)
      
  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 now available for paid subscribers at 
  
      
  
      
  