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 modifies 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.
Notification 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

What's hot

Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
Jenis Dharmadurai
 
Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)
Christian Posta
 
The Truth About the Service Mesh Data Plane
The Truth About the Service Mesh Data PlaneThe Truth About the Service Mesh Data Plane
The Truth About the Service Mesh Data Plane
Christian Posta
 
Istio: solving challenges of hybrid cloud
Istio: solving challenges of hybrid cloudIstio: solving challenges of hybrid cloud
Istio: solving challenges of hybrid cloud
Christian Posta
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Mohammad Dameer
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Srinivasan Nanduri
 
Evolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service meshEvolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service mesh
Christian Posta
 
NGINX KubeCon Copenhagen 2018
NGINX KubeCon Copenhagen 2018 NGINX KubeCon Copenhagen 2018
NGINX KubeCon Copenhagen 2018
NGINX, Inc.
 
Kenzan: Architecting for Microservices
Kenzan: Architecting for MicroservicesKenzan: Architecting for Microservices
Kenzan: Architecting for Microservices
Darren Bathgate
 
Getting Started with Kubernetes and Consul
Getting Started with Kubernetes and ConsulGetting Started with Kubernetes and Consul
Getting Started with Kubernetes and Consul
Mitchell Pronschinske
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverless
Christian Posta
 
Microservice
MicroserviceMicroservice
Microservice
Viney Shih
 
Microservice design patterns
Microservice design patternsMicroservice design patterns
Microservice design patterns
Hugh McKee
 
Dual write strategies for microservices
Dual write strategies for microservicesDual write strategies for microservices
Dual write strategies for microservices
Bilgin Ibryam
 
Building the future of Digital Television and Enterprise Database Management ...
Building the future of Digital Television and Enterprise Database Management ...Building the future of Digital Television and Enterprise Database Management ...
Building the future of Digital Television and Enterprise Database Management ...
MongoDB
 
Microservices: A Security Nightmare?
Microservices: A Security Nightmare?Microservices: A Security Nightmare?
Microservices: A Security Nightmare?
Container Solutions
 
How to Protect your AWS Environment
How to Protect your AWS EnvironmentHow to Protect your AWS Environment
How to Protect your AWS Environment
Lahav Savir
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
Paul Mooney
 
API Gateways are going through an identity crisis
API Gateways are going through an identity crisisAPI Gateways are going through an identity crisis
API Gateways are going through an identity crisis
Christian Posta
 
How to protect your IoT data on AWS
How to protect your IoT data on AWSHow to protect your IoT data on AWS
How to protect your IoT data on AWS
Lahav Savir
 

What's hot (20)

Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)
 
The Truth About the Service Mesh Data Plane
The Truth About the Service Mesh Data PlaneThe Truth About the Service Mesh Data Plane
The Truth About the Service Mesh Data Plane
 
Istio: solving challenges of hybrid cloud
Istio: solving challenges of hybrid cloudIstio: solving challenges of hybrid cloud
Istio: solving challenges of hybrid cloud
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Evolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service meshEvolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service mesh
 
NGINX KubeCon Copenhagen 2018
NGINX KubeCon Copenhagen 2018 NGINX KubeCon Copenhagen 2018
NGINX KubeCon Copenhagen 2018
 
Kenzan: Architecting for Microservices
Kenzan: Architecting for MicroservicesKenzan: Architecting for Microservices
Kenzan: Architecting for Microservices
 
Getting Started with Kubernetes and Consul
Getting Started with Kubernetes and ConsulGetting Started with Kubernetes and Consul
Getting Started with Kubernetes and Consul
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverless
 
Microservice
MicroserviceMicroservice
Microservice
 
Microservice design patterns
Microservice design patternsMicroservice design patterns
Microservice design patterns
 
Dual write strategies for microservices
Dual write strategies for microservicesDual write strategies for microservices
Dual write strategies for microservices
 
Building the future of Digital Television and Enterprise Database Management ...
Building the future of Digital Television and Enterprise Database Management ...Building the future of Digital Television and Enterprise Database Management ...
Building the future of Digital Television and Enterprise Database Management ...
 
Microservices: A Security Nightmare?
Microservices: A Security Nightmare?Microservices: A Security Nightmare?
Microservices: A Security Nightmare?
 
How to Protect your AWS Environment
How to Protect your AWS EnvironmentHow to Protect your AWS Environment
How to Protect your AWS Environment
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
API Gateways are going through an identity crisis
API Gateways are going through an identity crisisAPI Gateways are going through an identity crisis
API Gateways are going through an identity crisis
 
How to protect your IoT data on AWS
How to protect your IoT data on AWSHow to protect your IoT data on AWS
How to protect your IoT data on AWS
 

Similar to Nats meetup sf 20150826

Integration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesIntegration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices Architectures
Apcera
 
How to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First TimeHow to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First TimeDavid Linthicum
 
Microservices Design Principles.pdf
Microservices Design Principles.pdfMicroservices Design Principles.pdf
Microservices Design Principles.pdf
Simform
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
Rakesh Gujjarlapudi
 
Benefits of the Azure Cloud
Benefits of the Azure CloudBenefits of the Azure Cloud
Benefits of the Azure Cloud
Caserta
 
A NEW APPROACH FOR SECURITY IN CLOUD DATA STORAGE FOR IOT APPLICATIONS USING ...
A NEW APPROACH FOR SECURITY IN CLOUD DATA STORAGE FOR IOT APPLICATIONS USING ...A NEW APPROACH FOR SECURITY IN CLOUD DATA STORAGE FOR IOT APPLICATIONS USING ...
A NEW APPROACH FOR SECURITY IN CLOUD DATA STORAGE FOR IOT APPLICATIONS USING ...
IRJET Journal
 
Cloud strategy briefing 101
Cloud strategy briefing 101 Cloud strategy briefing 101
Cloud strategy briefing 101
Predrag Mitrovic
 
Cloud Computing: Delivering Public, Private and Hybrid Cloud Solutions
Cloud Computing: Delivering Public, Private and Hybrid Cloud SolutionsCloud Computing: Delivering Public, Private and Hybrid Cloud Solutions
Cloud Computing: Delivering Public, Private and Hybrid Cloud Solutions
Cygnet Infotech
 
A Guide to Cloud Computing Service Models.pptx
A Guide to Cloud Computing Service Models.pptxA Guide to Cloud Computing Service Models.pptx
A Guide to Cloud Computing Service Models.pptx
CETPA
 
E book maas
E book maasE book maas
E book maas
ich kml
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
Ajay Kumar Uppal
 
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
marksimpsongw
 
Microservices and the Cloud based future of integration final
Microservices and the Cloud based future of integration finalMicroservices and the Cloud based future of integration final
Microservices and the Cloud based future of integration final
BizTalk360
 
ITU-T requirement for cloud and cloud deployment model
ITU-T requirement for cloud and cloud deployment modelITU-T requirement for cloud and cloud deployment model
ITU-T requirement for cloud and cloud deployment model
Hitesh Mohapatra
 
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway
PartnerWin - #SocialSelling StarterPacks
 
Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises
Kasun Indrasiri
 
Cloud
CloudCloud
Benefits of the Azure cloud
Benefits of the Azure cloudBenefits of the Azure cloud
Benefits of the Azure cloud
James Serra
 
Microsoft CIO Summit - Government Private Cloud
Microsoft CIO Summit - Government Private CloudMicrosoft CIO Summit - Government Private Cloud
Microsoft CIO Summit - Government Private Cloud
David Ziembicki
 
Cloud Networking Presentation - WAN Summit - Ciaran Roche
Cloud Networking Presentation - WAN Summit - Ciaran RocheCloud Networking Presentation - WAN Summit - Ciaran Roche
Cloud Networking Presentation - WAN Summit - Ciaran Roche
Ciaran Roche
 

Similar to Nats meetup sf 20150826 (20)

Integration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesIntegration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices Architectures
 
How to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First TimeHow to Get Cloud Architecture and Design Right the First Time
How to Get Cloud Architecture and Design Right the First Time
 
Microservices Design Principles.pdf
Microservices Design Principles.pdfMicroservices Design Principles.pdf
Microservices Design Principles.pdf
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
Benefits of the Azure Cloud
Benefits of the Azure CloudBenefits of the Azure Cloud
Benefits of the Azure Cloud
 
A NEW APPROACH FOR SECURITY IN CLOUD DATA STORAGE FOR IOT APPLICATIONS USING ...
A NEW APPROACH FOR SECURITY IN CLOUD DATA STORAGE FOR IOT APPLICATIONS USING ...A NEW APPROACH FOR SECURITY IN CLOUD DATA STORAGE FOR IOT APPLICATIONS USING ...
A NEW APPROACH FOR SECURITY IN CLOUD DATA STORAGE FOR IOT APPLICATIONS USING ...
 
Cloud strategy briefing 101
Cloud strategy briefing 101 Cloud strategy briefing 101
Cloud strategy briefing 101
 
Cloud Computing: Delivering Public, Private and Hybrid Cloud Solutions
Cloud Computing: Delivering Public, Private and Hybrid Cloud SolutionsCloud Computing: Delivering Public, Private and Hybrid Cloud Solutions
Cloud Computing: Delivering Public, Private and Hybrid Cloud Solutions
 
A Guide to Cloud Computing Service Models.pptx
A Guide to Cloud Computing Service Models.pptxA Guide to Cloud Computing Service Models.pptx
A Guide to Cloud Computing Service Models.pptx
 
E book maas
E book maasE book maas
E book maas
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
 
Microservices and the Cloud based future of integration final
Microservices and the Cloud based future of integration finalMicroservices and the Cloud based future of integration final
Microservices and the Cloud based future of integration final
 
ITU-T requirement for cloud and cloud deployment model
ITU-T requirement for cloud and cloud deployment modelITU-T requirement for cloud and cloud deployment model
ITU-T requirement for cloud and cloud deployment model
 
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway
 
Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises
 
Cloud
CloudCloud
Cloud
 
Benefits of the Azure cloud
Benefits of the Azure cloudBenefits of the Azure cloud
Benefits of the Azure cloud
 
Microsoft CIO Summit - Government Private Cloud
Microsoft CIO Summit - Government Private CloudMicrosoft CIO Summit - Government Private Cloud
Microsoft CIO Summit - Government Private Cloud
 
Cloud Networking Presentation - WAN Summit - Ciaran Roche
Cloud Networking Presentation - WAN Summit - Ciaran RocheCloud Networking Presentation - WAN Summit - Ciaran Roche
Cloud Networking Presentation - WAN Summit - Ciaran Roche
 

More from Apcera

Gopher fest 2017: Adding Context To NATS
Gopher fest 2017: Adding Context To NATSGopher fest 2017: Adding Context To NATS
Gopher fest 2017: Adding Context To NATS
Apcera
 
How Clarifai uses NATS and Kubernetes for Machine Learning
How Clarifai uses NATS and Kubernetes for Machine LearningHow Clarifai uses NATS and Kubernetes for Machine Learning
How Clarifai uses NATS and Kubernetes for Machine Learning
Apcera
 
Modernizing IT in the Platform Era
Modernizing IT in the Platform EraModernizing IT in the Platform Era
Modernizing IT in the Platform Era
Apcera
 
Debugging Network Issues
Debugging Network IssuesDebugging Network Issues
Debugging Network Issues
Apcera
 
IT Modernization Doesn’t Mean You Leave Your Legacy Apps Behind
IT Modernization Doesn’t Mean You Leave Your Legacy Apps BehindIT Modernization Doesn’t Mean You Leave Your Legacy Apps Behind
IT Modernization Doesn’t Mean You Leave Your Legacy Apps Behind
Apcera
 
How Greta uses NATS to revolutionize data distribution on the Internet
How Greta uses NATS to revolutionize data distribution on the InternetHow Greta uses NATS to revolutionize data distribution on the Internet
How Greta uses NATS to revolutionize data distribution on the Internet
Apcera
 
Simple and Scalable Microservices: Using NATS with Docker Compose and Swarm
Simple and Scalable Microservices: Using NATS with Docker Compose and SwarmSimple and Scalable Microservices: Using NATS with Docker Compose and Swarm
Simple and Scalable Microservices: Using NATS with Docker Compose and Swarm
Apcera
 
The Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATSThe Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATS
Apcera
 
Implementing Microservices with NATS
Implementing Microservices with NATSImplementing Microservices with NATS
Implementing Microservices with NATS
Apcera
 
NATS for Modern Messaging and Microservices
NATS for Modern Messaging and MicroservicesNATS for Modern Messaging and Microservices
NATS for Modern Messaging and Microservices
Apcera
 
Actor Patterns and NATS - Boulder Meetup
Actor Patterns and NATS - Boulder MeetupActor Patterns and NATS - Boulder Meetup
Actor Patterns and NATS - Boulder Meetup
Apcera
 
NATS Connector Framework - Boulder Meetup
NATS Connector Framework - Boulder MeetupNATS Connector Framework - Boulder Meetup
NATS Connector Framework - Boulder Meetup
Apcera
 
Simple Solutions for Complex Problems - Boulder Meetup
Simple Solutions for Complex Problems - Boulder MeetupSimple Solutions for Complex Problems - Boulder Meetup
Simple Solutions for Complex Problems - Boulder Meetup
Apcera
 
Patterns for Asynchronous Microservices with NATS
Patterns for Asynchronous Microservices with NATSPatterns for Asynchronous Microservices with NATS
Patterns for Asynchronous Microservices with NATS
Apcera
 
NATS vs HTTP
NATS vs HTTPNATS vs HTTP
NATS vs HTTP
Apcera
 
Micro on NATS - Microservices with Messaging
Micro on NATS - Microservices with MessagingMicro on NATS - Microservices with Messaging
Micro on NATS - Microservices with Messaging
Apcera
 
NATS: A Central Nervous System for IoT Messaging - Larry McQueary
NATS: A Central Nervous System for IoT Messaging - Larry McQuearyNATS: A Central Nervous System for IoT Messaging - Larry McQueary
NATS: A Central Nervous System for IoT Messaging - Larry McQueary
Apcera
 
Simple Solutions for Complex Problems
Simple Solutions for Complex Problems Simple Solutions for Complex Problems
Simple Solutions for Complex Problems
Apcera
 
How to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and TrustHow to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and Trust
Apcera
 
KURMA - A Containerized Container Platform - KubeCon 2016
KURMA - A Containerized Container Platform - KubeCon 2016KURMA - A Containerized Container Platform - KubeCon 2016
KURMA - A Containerized Container Platform - KubeCon 2016
Apcera
 

More from Apcera (20)

Gopher fest 2017: Adding Context To NATS
Gopher fest 2017: Adding Context To NATSGopher fest 2017: Adding Context To NATS
Gopher fest 2017: Adding Context To NATS
 
How Clarifai uses NATS and Kubernetes for Machine Learning
How Clarifai uses NATS and Kubernetes for Machine LearningHow Clarifai uses NATS and Kubernetes for Machine Learning
How Clarifai uses NATS and Kubernetes for Machine Learning
 
Modernizing IT in the Platform Era
Modernizing IT in the Platform EraModernizing IT in the Platform Era
Modernizing IT in the Platform Era
 
Debugging Network Issues
Debugging Network IssuesDebugging Network Issues
Debugging Network Issues
 
IT Modernization Doesn’t Mean You Leave Your Legacy Apps Behind
IT Modernization Doesn’t Mean You Leave Your Legacy Apps BehindIT Modernization Doesn’t Mean You Leave Your Legacy Apps Behind
IT Modernization Doesn’t Mean You Leave Your Legacy Apps Behind
 
How Greta uses NATS to revolutionize data distribution on the Internet
How Greta uses NATS to revolutionize data distribution on the InternetHow Greta uses NATS to revolutionize data distribution on the Internet
How Greta uses NATS to revolutionize data distribution on the Internet
 
Simple and Scalable Microservices: Using NATS with Docker Compose and Swarm
Simple and Scalable Microservices: Using NATS with Docker Compose and SwarmSimple and Scalable Microservices: Using NATS with Docker Compose and Swarm
Simple and Scalable Microservices: Using NATS with Docker Compose and Swarm
 
The Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATSThe Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATS
 
Implementing Microservices with NATS
Implementing Microservices with NATSImplementing Microservices with NATS
Implementing Microservices with NATS
 
NATS for Modern Messaging and Microservices
NATS for Modern Messaging and MicroservicesNATS for Modern Messaging and Microservices
NATS for Modern Messaging and Microservices
 
Actor Patterns and NATS - Boulder Meetup
Actor Patterns and NATS - Boulder MeetupActor Patterns and NATS - Boulder Meetup
Actor Patterns and NATS - Boulder Meetup
 
NATS Connector Framework - Boulder Meetup
NATS Connector Framework - Boulder MeetupNATS Connector Framework - Boulder Meetup
NATS Connector Framework - Boulder Meetup
 
Simple Solutions for Complex Problems - Boulder Meetup
Simple Solutions for Complex Problems - Boulder MeetupSimple Solutions for Complex Problems - Boulder Meetup
Simple Solutions for Complex Problems - Boulder Meetup
 
Patterns for Asynchronous Microservices with NATS
Patterns for Asynchronous Microservices with NATSPatterns for Asynchronous Microservices with NATS
Patterns for Asynchronous Microservices with NATS
 
NATS vs HTTP
NATS vs HTTPNATS vs HTTP
NATS vs HTTP
 
Micro on NATS - Microservices with Messaging
Micro on NATS - Microservices with MessagingMicro on NATS - Microservices with Messaging
Micro on NATS - Microservices with Messaging
 
NATS: A Central Nervous System for IoT Messaging - Larry McQueary
NATS: A Central Nervous System for IoT Messaging - Larry McQuearyNATS: A Central Nervous System for IoT Messaging - Larry McQueary
NATS: A Central Nervous System for IoT Messaging - Larry McQueary
 
Simple Solutions for Complex Problems
Simple Solutions for Complex Problems Simple Solutions for Complex Problems
Simple Solutions for Complex Problems
 
How to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and TrustHow to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and Trust
 
KURMA - A Containerized Container Platform - KubeCon 2016
KURMA - A Containerized Container Platform - KubeCon 2016KURMA - A Containerized Container Platform - KubeCon 2016
KURMA - A Containerized Container Platform - KubeCon 2016
 

Recently uploaded

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 

Nats meetup sf 20150826

  • 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 modifies 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. Notification 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?