Mastering Microservice Patterns: Data Sharing, Aggregation, Proxy & Async Messaging

This article explains core microservice design patterns—including data‑sharing anti‑patterns, aggregation layers, proxy/sidecar architectures, and asynchronous messaging—offering practical guidance for building scalable, decoupled backend systems.

Mike Chen's Internet Architecture
Mike Chen's Internet Architecture
Mike Chen's Internet Architecture
Mastering Microservice Patterns: Data Sharing, Aggregation, Proxy & Async Messaging

Microservice architecture is the core of large‑scale systems. This article explains several common microservice design patterns.

Microservice Data Sharing Design

In a microservice architecture each service typically owns its own database (e.g., user, product). Business logic sometimes requires cross‑service data access, which leads to a data‑sharing design often regarded as an anti‑pattern. It may be used temporarily during early migration from monoliths, with the ultimate goal of splitting databases.

Microservice Aggregation Design

The aggregation pattern follows the principle “one request, multiple services, aggregate response, return together”. For example, an e‑commerce order detail page needs order info, product details, shipping address, and delivery status. Directly calling each service from the client creates a heavy aggregation burden. An aggregation layer (or API gateway) issues the service calls, combines the results, and returns a single response.

Aggregation diagram
Aggregation diagram
<ol>
<li>Client request</li>
<li>Aggregation service or API gateway</li>
<li>Call order service, product service, user service</li>
<li>Integrate response results</li>
<li>Return unified response to client</li>
</ol>

Microservice Proxy Design

The proxy pattern acts as a “middle‑man” providing infrastructure functions such as access control, routing, security, observability, and resilience without embedding business logic. The Sidecar pattern is a common proxy design, where a sidecar container (e.g., Envoy) intercepts all inbound/outbound traffic, offering service discovery, load balancing, circuit breaking, rate limiting, encryption, and logging.

Sidecar diagram
Sidecar diagram
<ol>
<li>Application container A</li>
<li>Sidecar container (e.g., Envoy)</li>
<li>All traffic passes through sidecar</li>
</ol>

Microservice Asynchronous Messaging Design

Asynchronous messaging decouples services by using message queues or events. A producer publishes a message to a queue, and consumers process it later, improving system throughput, smoothing spikes, handling complex workflows, and achieving eventual consistency. This pattern is suitable for decoupling service calls, elastic scaling, and high‑throughput scenarios such as notifying multiple systems after an order.

Async messaging diagram
Async messaging diagram

These patterns provide guidance for designing robust, scalable microservice systems.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Proxyasynchronous messagingdata sharingSidecarArchitecture Patternsaggregation
Mike Chen's Internet Architecture
Written by

Mike Chen's Internet Architecture

Over ten years of BAT architecture experience, shared generously!

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.