SlideShare a Scribd company logo
Integration Patterns for
Microservices Architectures
NATS in the [Multi-Cloud] Enterprise
David Williams
Co-Founder & Partner
Williams & Garcia
@DavWilliams
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices ArchitecturesNATS in the [Multi-Cloud] Enterprise
Williams & Garcia
“Full-stack” consultants based in Atlanta, GA.
Leveraging the ecosystem of modern application
technologies to improve the development, deployment,
and operability of enterprise applications.
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
My background:
sysadmin, architect <- consultant -> product dev
My 20+ years in the industry:
application infrastructure aka middleware aka platforms,
and the infrastructure they depend on.
My passion:
traditional enterprise it -> disruptive technologies
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
what’s this NATS thing?
Introduced to NATS through Cloud Foundry
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
pos·si·bil·i·ties
things that may be chosen or done
out of several possible alternatives.
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
A pattern catalog describing 65 integration patterns
Source: http://www.enterpriseintegrationpatterns.com/patterns/messaging/
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
‱ Applications were tightly-coupled
‱ Applications were large monoliths
‱ Enterprise applications were written in a single language,
the majority in Java
‱ Messaging systems were big and complex
These patterns were “harvested” and documented in a time when 

NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
anti-patterns
problem -> bad solution
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
the most common anti-pattern
in microservices architectures
Stovepipe
When existing software systems are migrated to a distributed
infrastructure. Arises when converting the existing software
interfaces to distributed interfaces.
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Example of likely anti-patterns for microservices architectures
Any patterns that is transactional in nature:
Transactional Client, Competing Consumers, Message Expiration
Any pattern that requires the messaging system to persist messages:
Durable Subscriber, *Guaranteed Delivery, Claim Check
Any pattern where the messaging system inspects or modiïŹes messages,
selectively routes message, or transforms message content:
Message Filter, Content Enricher, Content-Based Routing, Recipient List,
Routing Slip and Process Manager
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
* For a opinion of the fallacy of “Guaranteed Delivery”, visit:
http://bravenewgeek.com/what-you-want-is-what-you-dont-understanding-trade-offs-in-distributed-messaging/
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
so what are “good”
patterns for
micromessaging?
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Basic design patterns you’re already familiar with

Publish / Subscribe
Queueing
Request / Reply
Source:
http://www.slideshare.net/derekcollison/nats-a-new-nervous-system-for-distributed-cloud-platforms
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
putting those patterns
to use
with NATS
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Interservice Communication
Microservices communicate with each other via NATS messages.
All business and routing logic in the service, not the messaging system.
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Control Plane
Service state changes triggered by receipt of messages from “controller” service.
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Heartbeat
Each microservice publishes heartbeat (health) information via NATS.
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Real-Time Stream Processing
Ingest through NATS into stream processor.
Output processed stream via NATS to a SSE microservice.
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Event Store
Data written to, updated, or deleted from data store.
NotiïŹcation message of event change sent via NATS.
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Data Pump
Universal “database driver” using microservices as data writers/readers
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
let’s go global
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Bridgehead
Information exchange between different sites/regions via NATS
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
why should developers
have all the fun?
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: DevOps Gone Wild
Messaging as part of the infrastructure engineering & the DevOps toolchain
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Global Domination
All services, everywhere, communicating via NATS
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
don’t be like this guy
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
in summary
Microservices architectures provide an
opportunity to re-evaluate the way we think about
communication in the composable enterprise.
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
resources
Project site:
http://nats.io/
Referenced in deck:
http://bravenewgeek.com/what-you-want-is-what-you-dont-understanding-trade-offs-in-distributed-messaging/
http://slideshare.net/derekcollison/nats-a-new-nervous-system-for-distributed-cloud-platforms
Get it here:
http://nats.io/download/
https://hub.docker.com/_/nats/
https://github.com/nats-io/gnatsd
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
questions?

More Related Content

PDF
When NOT to use Apache Kafka?
PDF
Introduction to Docker Compose | Docker Intermediate Workshop
PPTX
DevOps with Kubernetes
PDF
Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...
PDF
Kubernetes
PPT
Containers 101
PPTX
Azure App Service
PPTX
Azure kubernetes service (aks)
When NOT to use Apache Kafka?
Introduction to Docker Compose | Docker Intermediate Workshop
DevOps with Kubernetes
Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...
Kubernetes
Containers 101
Azure App Service
Azure kubernetes service (aks)

What's hot (20)

PDF
Helm - Application deployment management for Kubernetes
PPTX
Azure AKS
PPTX
Introduction to Kubernetes
PPTX
Terraform
PDF
Evolution of containers to kubernetes
PDF
Kubernetes Networking
PDF
Kubernetes Basics
PPTX
Terraform Basics
PPTX
Ansible presentation
PPT
PDF
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
PPTX
Azure kubernetes service
PDF
An Introduction to Kubernetes
PPTX
Kubernetes Introduction
PPTX
Windows Azure Blob Storage
 
PDF
Containers: The What, Why, and How
PDF
Red Hat Openshift on Microsoft Azure
PPTX
Kubernetes Basics
PPTX
Microsoft Azure - Introduction
PPSX
CI-CD Jenkins, GitHub Actions, Tekton
Helm - Application deployment management for Kubernetes
Azure AKS
Introduction to Kubernetes
Terraform
Evolution of containers to kubernetes
Kubernetes Networking
Kubernetes Basics
Terraform Basics
Ansible presentation
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Azure kubernetes service
An Introduction to Kubernetes
Kubernetes Introduction
Windows Azure Blob Storage
 
Containers: The What, Why, and How
Red Hat Openshift on Microsoft Azure
Kubernetes Basics
Microsoft Azure - Introduction
CI-CD Jenkins, GitHub Actions, Tekton
Ad

Similar to Integration Patterns for Microservices Architectures (20)

PDF
Integration Patterns and Anti-Patterns for Microservices Architectures
 
PDF
Designing microservices platforms with nats
PPT
Cloud designpatterns
PDF
Cloud Native Patterns (Jamie Dobson, Container Solutions)
PDF
Enterprise Integration in Cloud Native Microservices Architectures
PDF
NATS in action - A Real time Microservices Architecture handled by NATS
PDF
Nats in action a real time microservices architecture handled by nats
PPTX
Enterprise Cloud Native
PPTX
Distributed architecture in a cloud native microservices ecosystem
PDF
Integration in the Age of DevOps
PDF
The top 6 microservices patterns
PDF
Evolving your Architecture to MicroServices
PDF
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
PDF
Microservices in the Enterprise: A Research Study and Reference Architecture
PDF
[WSO2Con Asia 2018] Adaptive and Iterative Integration for Microservices and ...
 
PPTX
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
PPTX
Adaptive and Iterative Integration for Microservices and Cloud Native Archite...
PDF
Cloud Native Middleware Microservices - 10 Lessons Learned
PDF
[WSO2Con USA 2018] Adaptive and Iterative Integration for Microservices and C...
 
PDF
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
Integration Patterns and Anti-Patterns for Microservices Architectures
 
Designing microservices platforms with nats
Cloud designpatterns
Cloud Native Patterns (Jamie Dobson, Container Solutions)
Enterprise Integration in Cloud Native Microservices Architectures
NATS in action - A Real time Microservices Architecture handled by NATS
Nats in action a real time microservices architecture handled by nats
Enterprise Cloud Native
Distributed architecture in a cloud native microservices ecosystem
Integration in the Age of DevOps
The top 6 microservices patterns
Evolving your Architecture to MicroServices
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Microservices in the Enterprise: A Research Study and Reference Architecture
[WSO2Con Asia 2018] Adaptive and Iterative Integration for Microservices and ...
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Adaptive and Iterative Integration for Microservices and Cloud Native Archite...
Cloud Native Middleware Microservices - 10 Lessons Learned
[WSO2Con USA 2018] Adaptive and Iterative Integration for Microservices and C...
 
ClouNS - A Cloud-native Application Reference Model for Enterprise Architects
Ad

More from NATS (20)

PDF
RethinkConn 2022!
 
PDF
KubeCon + CloudNative Con NA 2021 | A New Generation of NATS
 
PDF
Easy, Secure, and Fast: Using NATS.io for Streams and Services
 
PPTX
Deep Dive into Building a Secure & Multi-tenant SaaS Solution with NATS
 
PDF
NATS Connect Live | Serverless on Kubernetes with OpenFaaS & NATS
 
PDF
NATS Connect Live!
 
PDF
NATS Connect Live | SwimOS & NATS
 
PDF
NATS Connect Live | Pub/Sub on the Power Grid
 
PDF
NATS Connect Live | Distributed Identity & Authorization
 
PDF
NATS Connect Live | NATS as a Service Mesh
 
PDF
NATS Connect Live | Resgate
 
PDF
NATS Connect Live | NATS & Augmented Reality
 
PDF
Deploy Secure and Scalable Services Across Kubernetes Clusters with NATS
 
PDF
KubeCon NA 2019 Keynote | NATS - Past, Present, and the Future
 
PDF
A New Way of Thinking | NATS 2.0 & Connectivity
 
PDF
OSCON 2019 | Time to Think Different
 
PDF
Serverless for the Cloud Native Era with Fission
 
PDF
Simple, Secure, Scalable Messaging for the Cloud Native Era - AllThingsOpen 2...
 
PDF
Microservices Meetup San Francisco - August 2017 Talk on NATS
 
PDF
Writing Networking Clients in Go - GopherCon 2017 talk
 
RethinkConn 2022!
 
KubeCon + CloudNative Con NA 2021 | A New Generation of NATS
 
Easy, Secure, and Fast: Using NATS.io for Streams and Services
 
Deep Dive into Building a Secure & Multi-tenant SaaS Solution with NATS
 
NATS Connect Live | Serverless on Kubernetes with OpenFaaS & NATS
 
NATS Connect Live!
 
NATS Connect Live | SwimOS & NATS
 
NATS Connect Live | Pub/Sub on the Power Grid
 
NATS Connect Live | Distributed Identity & Authorization
 
NATS Connect Live | NATS as a Service Mesh
 
NATS Connect Live | Resgate
 
NATS Connect Live | NATS & Augmented Reality
 
Deploy Secure and Scalable Services Across Kubernetes Clusters with NATS
 
KubeCon NA 2019 Keynote | NATS - Past, Present, and the Future
 
A New Way of Thinking | NATS 2.0 & Connectivity
 
OSCON 2019 | Time to Think Different
 
Serverless for the Cloud Native Era with Fission
 
Simple, Secure, Scalable Messaging for the Cloud Native Era - AllThingsOpen 2...
 
Microservices Meetup San Francisco - August 2017 Talk on NATS
 
Writing Networking Clients in Go - GopherCon 2017 talk
 

Recently uploaded (20)

PPTX
Introduction to Artificial Intelligence
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
top salesforce developer skills in 2025.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Nekopoi APK 2025 free lastest update
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
medical staffing services at VALiNTRY
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
ai tools demonstartion for schools and inter college
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
Introduction to Artificial Intelligence
Internet Downloader Manager (IDM) Crack 6.42 Build 41
top salesforce developer skills in 2025.pdf
Softaken Excel to vCard Converter Software.pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
CHAPTER 2 - PM Management and IT Context
Nekopoi APK 2025 free lastest update
Which alternative to Crystal Reports is best for small or large businesses.pdf
medical staffing services at VALiNTRY
Odoo Companies in India – Driving Business Transformation.pdf
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Understanding Forklifts - TECH EHS Solution
Navsoft: AI-Powered Business Solutions & Custom Software Development
2025 Textile ERP Trends: SAP, Odoo & Oracle
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Operating system designcfffgfgggggggvggggggggg
ai tools demonstartion for schools and inter college
Reimagine Home Health with the Power of Agentic AI​
Upgrade and Innovation Strategies for SAP ERP Customers

Integration Patterns for Microservices Architectures

  • 1. Integration Patterns for Microservices Architectures NATS in the [Multi-Cloud] Enterprise David Williams Co-Founder & Partner Williams & Garcia @DavWilliams
  • 2. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices ArchitecturesNATS in the [Multi-Cloud] Enterprise Williams & Garcia “Full-stack” consultants based in Atlanta, GA. Leveraging the ecosystem of modern application technologies to improve the development, deployment, and operability of enterprise applications.
  • 3. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures My background: sysadmin, architect <- consultant -> product dev My 20+ years in the industry: application infrastructure aka middleware aka platforms, and the infrastructure they depend on. My passion: traditional enterprise it -> disruptive technologies
  • 4. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures what’s this NATS thing? Introduced to NATS through Cloud Foundry
  • 5. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures pos·si·bil·i·ties things that may be chosen or done out of several possible alternatives.
  • 6. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures A pattern catalog describing 65 integration patterns Source: http://www.enterpriseintegrationpatterns.com/patterns/messaging/
  • 7. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures ‱ Applications were tightly-coupled ‱ Applications were large monoliths ‱ Enterprise applications were written in a single language, the majority in Java ‱ Messaging systems were big and complex These patterns were “harvested” and documented in a time when 

  • 8. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures anti-patterns problem -> bad solution
  • 9. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures the most common anti-pattern in microservices architectures Stovepipe When existing software systems are migrated to a distributed infrastructure. Arises when converting the existing software interfaces to distributed interfaces.
  • 10. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Example of likely anti-patterns for microservices architectures Any patterns that is transactional in nature: Transactional Client, Competing Consumers, Message Expiration Any pattern that requires the messaging system to persist messages: Durable Subscriber, *Guaranteed Delivery, Claim Check Any pattern where the messaging system inspects or modiïŹes messages, selectively routes message, or transforms message content: Message Filter, Content Enricher, Content-Based Routing, Recipient List, Routing Slip and Process Manager
  • 11. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures * For a opinion of the fallacy of “Guaranteed Delivery”, visit: http://bravenewgeek.com/what-you-want-is-what-you-dont-understanding-trade-offs-in-distributed-messaging/
  • 12. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures so what are “good” patterns for micromessaging?
  • 13. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Basic design patterns you’re already familiar with
 Publish / Subscribe Queueing Request / Reply Source: http://www.slideshare.net/derekcollison/nats-a-new-nervous-system-for-distributed-cloud-platforms
  • 14. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures putting those patterns to use with NATS
  • 15. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: Interservice Communication Microservices communicate with each other via NATS messages. All business and routing logic in the service, not the messaging system.
  • 16. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: Control Plane Service state changes triggered by receipt of messages from “controller” service.
  • 17. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: Heartbeat Each microservice publishes heartbeat (health) information via NATS.
  • 18. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: Real-Time Stream Processing Ingest through NATS into stream processor. Output processed stream via NATS to a SSE microservice.
  • 19. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: Event Store Data written to, updated, or deleted from data store. NotiïŹcation message of event change sent via NATS.
  • 20. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: Data Pump Universal “database driver” using microservices as data writers/readers
  • 21. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures let’s go global
  • 22. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: Bridgehead Information exchange between different sites/regions via NATS
  • 23. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures why should developers have all the fun?
  • 24. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: DevOps Gone Wild Messaging as part of the infrastructure engineering & the DevOps toolchain
  • 25. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: Global Domination All services, everywhere, communicating via NATS
  • 26. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures don’t be like this guy
  • 27. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures in summary Microservices architectures provide an opportunity to re-evaluate the way we think about communication in the composable enterprise.
  • 28. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures resources Project site: http://nats.io/ Referenced in deck: http://bravenewgeek.com/what-you-want-is-what-you-dont-understanding-trade-offs-in-distributed-messaging/ http://slideshare.net/derekcollison/nats-a-new-nervous-system-for-distributed-cloud-platforms Get it here: http://nats.io/download/ https://hub.docker.com/_/nats/ https://github.com/nats-io/gnatsd
  • 29. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures questions?