Microservices 101: Communication between services

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • MyrinNew
    Senior Member
    • Feb 2024
    • 5168

    #1

    Microservices 101: Communication between services

    Microservice architecture consists of multiple independent services that often need to communicate with each other.


    This communication can be achieved in two primary ways:
    • Synchronous
    • Asyncronous


    Synchronous communication




    Synchronous communication follows a client-server model, where one service sends a request to another and waits for a response before proceeding.


    Common protocols

    • REST APIs – resource-based communication using HTTP methods (GET, POST, PUT, DELETE)
    • RPC - Remote Procedure Call. Allows invoking methods on remote services as if they were local. Examples:
      • SOAP - XML-based
      • gRPC - uses binary format for payloads, high performance,


    Pros & Cons

    Pros:
    • Simple to use and implement
    • Immediate data retrieval


    Cons:
    • Tightly coupled - if one service depends on another that is down, the entire operation fails
    • Scalability issues - high traffic can overload serivces
    • Latency - slow response times can create bottlenecks


    Use cases

    • External API calls
    • Need immediate response (e.g. authentication)
    • Data consistency is critical (e.g. order processing)


    Asynchronous communication




    Asynchronous communication uses message brokers as an intermediate service for communication between services. Instead of waiting for an immediate response, a service sends a message to a broker, which another service later processes.


    Pros & Cons

    Pros:
    • Loosely coupled - services operate independently, improving scalability
    • High availability and resilience - a service can continue operating even if other services are temporarily down


    Cons:
    • Increased complexity and maintenance - requires additional infrastructure and message handling
    • Messages ordering & duplication - messages may arrive out of order or be duplicated, requiring deduplication strategies


    Use cases

    • Event-driven architecture
    • Background processing - immediate response is not required
    • High-load systems - where scalability is a priority




    More...
Working...