DEV Community

Cover image for A simple decision tree on how to choose communication styles between microservices
Thy Pham
Thy Pham

Posted on

A simple decision tree on how to choose communication styles between microservices

When I design a microservices system, one of the questions I always ask myself: how will service A communicate with service B?

This one question seems simple, but the right (maybe just reasonable) answer can depend on many things. Such as synchronous or asynchronous? Request-response or event-driven? Queue or Topic? REST or GraphQL or RPC? etc.
That's why I decided to put some effort into building a decision tree that can somehow help choose a good communication style between two services.

Note: We can use a mix of styles in our microservices, and don't take it for granted. My decision tree can have mistakes and can be incomplete, and I very much appreciate it if you could help me correct them :)

You can open the original size image of the decision tree here: https://live.staticflickr.com/65535/51981736503_9eb0839e08_h.jpg

Microservices communication styles decision tree

Discussion (0)