Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Integration Patterns for
Microservices Architectures
NATS in the [Multi-Cloud] Enterprise
David Williams
Co-Founder & Part...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices ArchitecturesNATS in the [Multi-Cloud] Enterpr...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
My background:
sysadmin, archite...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
what’s this NATS thing?
Introduc...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
pos·si·bil·i·ties
things that ma...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
A pattern catalog describing 65 ...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
• Applications were tightly-coup...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
anti-patterns
problem -> bad sol...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
the most common anti-pattern
in ...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Example of likely anti-patterns ...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
* For a opinion of the fallacy o...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
so what are “good”
patterns for
...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Basic design patterns you’re alr...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
putting those patterns
to use
wi...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Interservice Com...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Control Plane
Se...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Heartbeat
Each m...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Real-Time Stream...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Event Store
Data...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Data Pump
Univer...
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
Infor...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
why should developers
have all t...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: DevOps Gone Wild...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
Design Pattern: Global Dominatio...
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 archite...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
resources
Project site:
http://n...
NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures
questions?
Upcoming SlideShare
Loading in …5
×

Integration Patterns for Microservices Architectures

7,141 views

Published on

One of the fundamental principals of microservices is the idea of lightweight, composable loosely coupled applications that can either talk through some type of service endpoint, through some protocol like HTTP or through pipes.

A lightweight messaging system such as NATS is a better way for microservices to talk to each other and integrate disparate systems outside the microservice or architecture.

You can learn more about NATS at http://www.nats.io

Published in: Technology
  • Be the first to comment

Integration Patterns for Microservices Architectures

  1. 1. Integration Patterns for Microservices Architectures NATS in the [Multi-Cloud] Enterprise David Williams Co-Founder & Partner Williams & Garcia @DavWilliams
  2. 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. 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. 4. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures what’s this NATS thing? Introduced to NATS through Cloud Foundry
  5. 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. 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. 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. 8. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures anti-patterns problem -> bad solution
  9. 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. 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 modifies messages, selectively routes message, or transforms message content: Message Filter, Content Enricher, Content-Based Routing, Recipient List, Routing Slip and Process Manager
  11. 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. 12. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures so what are “good” patterns for micromessaging?
  13. 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. 14. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures putting those patterns to use with NATS
  15. 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. 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. 17. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: Heartbeat Each microservice publishes heartbeat (health) information via NATS.
  18. 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. 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. Notification message of event change sent via NATS.
  20. 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. 21. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures let’s go global
  22. 22. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: Bridgehead Information exchange between different sites/regions via NATS
  23. 23. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures why should developers have all the fun?
  24. 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. 25. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures Design Pattern: Global Domination All services, everywhere, communicating via NATS
  26. 26. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures don’t be like this guy
  27. 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. 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. 29. NATS in the [Multi-Cloud] Enterprise Integration Patterns for Microservices Architectures questions?

×