SlideShare a Scribd company logo
1 of 35
Download to read offline
Simple, Fast, Secure Messaging for IoT, Cloud Native, and Microservices
Boulder Meetup
6/7/2016
Why do we need another messaging system?
We are in a Messaging Renaissance
Cloud Messaging is fastest growing segment of current
messaging market. (Gartner 2013)
New requirements for IoT, mobile, big data, and micro-services
● Legacy bloated platforms don’t work
● Open source first
Massive sensor enablement wave
● 20.8 billion connected things by 2020 (Gartner)
● Driving requirements for “Trusted IoT”
Created by
Derek Collison
Founder and CEO at Apcera
๏ CTO, Chief Architect at VMware
๏ Architected CloudFoundry
๏ Technical Director at Google
๏ SVP and Chief Architect at TIBCO
The Vision
Building Messaging Systems and Solutions > 20yrs
Experienced Messaging Team
✓NATS is made for developers who don’t have
the time to be messaging experts
High-Performance
Always on and available
Extremely lightweight
Easy to use
At Most Once Delivery
Publish/Subscribe
Distributed Queue
Request/Reply
What is NATS?
๏ Performance
๏ Simplicity
‣ Single binary
‣ Text-based protocol! (http://nats.io/documentation/internals/nats-
protocol/)
‣ No external dependencies
๏ Availability over anything - Dial-tone
๏ Small footprint & embeddable
๏ Just what you need, and none of what you don’t
NATS DNA
๏ IoT Messaging
๏ High Fan-out Messaging
๏ Mobile and Big Data
๏ Microservices transport
๏ Service Discovery
๏ Replacing legacy messaging systems
Some ways NATS is being used by developers
How simple is simple?
NATS is very, very simple and lightweight
NATS is very, very simple and lightweight
NATS is very, very simple and lightweight
*Read more on Daniel Wertheim’s Blog: http://danielwertheim.se/nats-what-a-beautiful-protocol/
How fast is fast?
NATS is very, very fast
NATS is very, very fast
*Read more on Richard Seroter’s blog: http://bit.ly/22dNlYZ
NATS = ~0 latency
*Read more on Tyler Treat’s blog: http://bravenewgeek.com/benchmarking-message-queue-latency/
NATS Streaming - Coming Soon!
16
● NATS Streaming is open source data streaming, powered by NATS
● Features:
○ At-least-once delivery
○ Rate matching per subscriber
○ Replay by time or seqno offset
○ Last/initial value
○ Durable subscribers
● Clusterable, extensible (modular) storage subsystem
○ Memory
○ File
○ Future: Database/Other
Growing Ecosystem – Get involved!
Rapidly growing community of developers
•Hundreds of meetup members (San Francisco, Denver, Toronto, London, Barcelona)
•Hundreds of developers providing input in NATS Slack Community
•4,000+ stars on GitHub
•Dozens of excellent blog posts from the development community on www.nats.
io/blog
•Join the community! http://www.nats.io/community/
GopherCon Workshop on NATS
RSVP if you plan to attend:
http://bit.ly/1XpeSq6
Broad Client Support
Apcera Supported Community
○ Go
○ Elixir
○ Java
○ node.js
○ C
○ C#/.NET
○ NGINX
○ Python (Asyncio and
Tornado)
○ Ruby
○ Arduino
○ Erlang
○ Haskell
○ Lua
○ PHP
○ Perl
○ Python (Twisted)
○ Rust
○ Scala
○ Spring
Rapidly growing community of developers
Join the community! http://www.
nats.io/community/
Connectors
๏ There is a need to bridge to other technologies
๏ Permanent
๏ Temporary - Fill the Gap
๏ Host an exchange where users can share connectors
๏ Users gain exposure through OSS contributions
A Need for Connectors
๏ Simple - A way to bridge NATS and other
technologies.
๏ Reusable
๏ Not customized
๏ Goal that a connector implementation will meet
about 75% of use cases.
๏ Optionally uses a NATS connector framework for ease
of development
What is a Connector?
Connector Framework Architecture
Connector
Framework
NATS
Other
TechnologyConnector Plugin
๏ The NATS connector framework is a simple,
straightforward, plugin-based driver.
๏ Reduces development time
๏ Aimed toward legacy technologies
๏ Java based
๏ Exploring a golang based framework
๏ Example - Redis Pub/Sub Connector
NATS connector framework
๏ The framework is not suited to all technologies
๏ Embedding NATS elsewhere
๏ Resource Restrictions
๏ Other language bindings
Other Types of Connectors
Current Connectors
๏ Golden Rule
๏ Think of the user base…
๏ Ease of use
๏ Generalization
๏ Stability
Development Guidelines
๏ Contributing is easy, just code a connector up and
provide a link.
๏ Submit a PR or request an update the NATS website
to link to your connector.Feel free to ping the slack
channels
๏ Ask questions! #connectors slack channel
๏ We’ll be happy to review your work.
๏ http://www.nats.io/community - join Slack
Contributing
๏ Documentation
๏ Overview, walkthrough, samples
๏ Code
๏ Easy Installation
๏ Simplicity drives usage
๏ Little Configuration
๏ Logging/Tracing for debugging
๏ Lower the frustration level
Development Guidelines - Ease of Use
๏ Configurable, but not overly so
๏ Think 75% use case
๏ Defaults that just work
๏ Suggestion: JSON read from URL
๏ …Or whatever makes sense
Development Guidelines - Generalization
๏ Unit Tests
๏ Worth their weight in gold.
๏ Coverage
๏ Check code coverage
๏ Fault Tolerant
๏ Handle Corner Cases
๏ Stay alive unless errors are truly fatal
Development Guidelines - Stability
• Submit a connector you build to us
- Send a PR to nats-site repo on
Github with a link to your connector
on nats.io/community
Accepted Connectors win you a NATS
hoodie!
Win some LIMITED EDITION NATS #SWAG !
Colin Sullivan
colin@nats.io
Twitter: @ColinSullivan01
Github: ColinSullivan1
Brian Flannery
brian@nats.io
Twitter: @brianflannery
www.nats.io
Thank You!

More Related Content

What's hot

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
 
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
 

What's hot (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
 
NGINX, Istio, and the Move to Microservices and Service Mesh
NGINX, Istio, and the Move to Microservices and Service MeshNGINX, Istio, and the Move to Microservices and Service Mesh
NGINX, Istio, and the Move to Microservices and Service Mesh
 
NGINX MRA Fabric Model Release and Ask Me Anything Part 4
NGINX MRA Fabric Model Release and Ask Me Anything Part 4NGINX MRA Fabric Model Release and Ask Me Anything Part 4
NGINX MRA Fabric Model Release and Ask Me Anything Part 4
 
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
 
PHX DevOps Days: Service Mesh Landscape
PHX DevOps Days: Service Mesh LandscapePHX DevOps Days: Service Mesh Landscape
PHX DevOps Days: Service Mesh Landscape
 
Nats meetup sf 20150826
Nats meetup sf   20150826Nats meetup sf   20150826
Nats meetup sf 20150826
 
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
 
Cloud management portal - admin view
Cloud management portal - admin viewCloud management portal - admin view
Cloud management portal - admin view
 
API World: The service-mesh landscape
API World: The service-mesh landscapeAPI World: The service-mesh landscape
API World: The service-mesh landscape
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejs
 
Deploying NGINX in Cloud Native Kubernetes
Deploying NGINX in Cloud Native KubernetesDeploying NGINX in Cloud Native Kubernetes
Deploying NGINX in Cloud Native Kubernetes
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...
 
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
 
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
 
NGINX KubeCon Copenhagen 2018
NGINX KubeCon Copenhagen 2018 NGINX KubeCon Copenhagen 2018
NGINX KubeCon Copenhagen 2018
 
Latest Trends in Web Application Security
Latest Trends in Web Application SecurityLatest Trends in Web Application Security
Latest Trends in Web Application Security
 
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!)
 
Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?
 
Intro Istio and what's new Istio 1.1
Intro Istio and what's new Istio 1.1Intro Istio and what's new Istio 1.1
Intro Istio and what's new Istio 1.1
 
Avoid SPOF in Cloud-native Apps
Avoid SPOF in Cloud-native AppsAvoid SPOF in Cloud-native Apps
Avoid SPOF in Cloud-native Apps
 

Viewers also liked

Blaze clan company presentation
Blaze clan   company presentationBlaze clan   company presentation
Blaze clan company presentation
Supratik Ghatak
 
Google Quick Tip - Spell Check
Google Quick Tip - Spell CheckGoogle Quick Tip - Spell Check
Google Quick Tip - Spell Check
cloudbakers
 
οργάνωση, διοίκηση και λειτουργία ενός γραφείου εισερχομένου τουρισμού
οργάνωση, διοίκηση και λειτουργία ενός γραφείου εισερχομένου τουρισμούοργάνωση, διοίκηση και λειτουργία ενός γραφείου εισερχομένου τουρισμού
οργάνωση, διοίκηση και λειτουργία ενός γραφείου εισερχομένου τουρισμού
Stamatina Kanta
 

Viewers also liked (20)

Docker & Apcera Better Together
Docker & Apcera Better TogetherDocker & Apcera Better Together
Docker & Apcera Better Together
 
Kubernetes, The Day After
Kubernetes, The Day AfterKubernetes, The Day After
Kubernetes, The Day After
 
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
 
Overview of AWS Services for Media Content
Overview of AWS Services for Media ContentOverview of AWS Services for Media Content
Overview of AWS Services for Media Content
 
Metin Örnek Dinamikler 2016
Metin Örnek Dinamikler 2016Metin Örnek Dinamikler 2016
Metin Örnek Dinamikler 2016
 
Levent Nart Dinamikler 2016
Levent Nart Dinamikler 2016Levent Nart Dinamikler 2016
Levent Nart Dinamikler 2016
 
Paolo Pulcini Dinamikler 2016
Paolo Pulcini Dinamikler 2016Paolo Pulcini Dinamikler 2016
Paolo Pulcini Dinamikler 2016
 
Micro services on AWS
Micro services on AWSMicro services on AWS
Micro services on AWS
 
Blaze clan company presentation
Blaze clan   company presentationBlaze clan   company presentation
Blaze clan company presentation
 
Bulut Bilisim Nedir ? Ne Degildir ?
Bulut Bilisim Nedir ? Ne Degildir ?Bulut Bilisim Nedir ? Ne Degildir ?
Bulut Bilisim Nedir ? Ne Degildir ?
 
Virtualization @ Sehir
Virtualization @ SehirVirtualization @ Sehir
Virtualization @ Sehir
 
Google Quick Tip - Spell Check
Google Quick Tip - Spell CheckGoogle Quick Tip - Spell Check
Google Quick Tip - Spell Check
 
Deniz Saral Dinamikler 2016
Deniz Saral Dinamikler 2016Deniz Saral Dinamikler 2016
Deniz Saral Dinamikler 2016
 
Ouchlook
OuchlookOuchlook
Ouchlook
 
Office 365 Yönetilen Hizmetler ( Deployment as a Service)
Office 365 Yönetilen Hizmetler ( Deployment as a Service)Office 365 Yönetilen Hizmetler ( Deployment as a Service)
Office 365 Yönetilen Hizmetler ( Deployment as a Service)
 
Finding the Right CRM
Finding the Right CRMFinding the Right CRM
Finding the Right CRM
 
Sherif Adel Medhar Dinamikler 2016
Sherif Adel Medhar Dinamikler 2016Sherif Adel Medhar Dinamikler 2016
Sherif Adel Medhar Dinamikler 2016
 
Google Apps | Automatic substitution
Google Apps | Automatic substitutionGoogle Apps | Automatic substitution
Google Apps | Automatic substitution
 
Migrate Your Business to the Cloud
Migrate Your Business to the CloudMigrate Your Business to the Cloud
Migrate Your Business to the Cloud
 
οργάνωση, διοίκηση και λειτουργία ενός γραφείου εισερχομένου τουρισμού
οργάνωση, διοίκηση και λειτουργία ενός γραφείου εισερχομένου τουρισμούοργάνωση, διοίκηση και λειτουργία ενός γραφείου εισερχομένου τουρισμού
οργάνωση, διοίκηση και λειτουργία ενός γραφείου εισερχομένου τουρισμού
 

Similar to NATS Connector Framework - Boulder Meetup

Similar to NATS Connector Framework - Boulder Meetup (20)

RethinkConn 2022!
RethinkConn 2022!RethinkConn 2022!
RethinkConn 2022!
 
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoTZephyr: Creating a Best-of-Breed, Secure RTOS for IoT
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
 
NATS Connect Live!
NATS Connect Live!NATS Connect Live!
NATS Connect Live!
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
 
Apache Stratos - Building a PaaS using OSGi and Equinox
Apache Stratos - Building a PaaS using OSGi and EquinoxApache Stratos - Building a PaaS using OSGi and Equinox
Apache Stratos - Building a PaaS using OSGi and Equinox
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
KubeCon NA 2019 Keynote | NATS - Past, Present, and the Future
KubeCon NA 2019 Keynote | NATS - Past, Present, and the FutureKubeCon NA 2019 Keynote | NATS - Past, Present, and the Future
KubeCon NA 2019 Keynote | NATS - Past, Present, and the Future
 
Leaving the Ivory Tower: Research in the Real World
Leaving the Ivory Tower: Research in the Real WorldLeaving the Ivory Tower: Research in the Real World
Leaving the Ivory Tower: Research in the Real World
 
EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS
 
NATS Internals, Strengths and Challenges
NATS Internals, Strengths and ChallengesNATS Internals, Strengths and Challenges
NATS Internals, Strengths and Challenges
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes
 
How to Build Your Blockchain Project with Chainstack
How to Build Your Blockchain Project with ChainstackHow to Build Your Blockchain Project with Chainstack
How to Build Your Blockchain Project with Chainstack
 
#1 Calicut MuleSoft Meetup - Introduction to Enterprise Integration and MuleSoft
#1 Calicut MuleSoft Meetup - Introduction to Enterprise Integration and MuleSoft#1 Calicut MuleSoft Meetup - Introduction to Enterprise Integration and MuleSoft
#1 Calicut MuleSoft Meetup - Introduction to Enterprise Integration and MuleSoft
 
DevOps-Roadmap
DevOps-RoadmapDevOps-Roadmap
DevOps-Roadmap
 
Connect Everything with NATS - Cloud Expo Europe
Connect Everything with NATS - Cloud Expo EuropeConnect Everything with NATS - Cloud Expo Europe
Connect Everything with NATS - Cloud Expo Europe
 
Netty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/ConnectivityNetty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/Connectivity
 
Open Ethernet: an open-source approach to modern network design
Open Ethernet: an open-source approach to modern network designOpen Ethernet: an open-source approach to modern network design
Open Ethernet: an open-source approach to modern network design
 
Scaling DevSecOps Culture for Enterprise
Scaling DevSecOps Culture for EnterpriseScaling DevSecOps Culture for Enterprise
Scaling DevSecOps Culture for Enterprise
 
Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"
 
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
 

More from 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
 
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
 
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
 
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
 
Policy-based Cloud Storage: Persisting Data in a Multi-Site, Multi-Cloud World
Policy-based Cloud Storage: Persisting Data in a Multi-Site, Multi-Cloud WorldPolicy-based Cloud Storage: Persisting Data in a Multi-Site, Multi-Cloud World
Policy-based Cloud Storage: Persisting Data in a Multi-Site, Multi-Cloud World
 
Integration Patterns for Microservices Architectures
Integration Patterns for Microservices ArchitecturesIntegration Patterns for Microservices Architectures
Integration Patterns for Microservices Architectures
 
Microservices: Notes From The Field
Microservices: Notes From The FieldMicroservices: Notes From The Field
Microservices: Notes From The Field
 
Docker + App Container = ocp
Docker + App Container = ocpDocker + App Container = ocp
Docker + App Container = ocp
 
Apcera: Agility and Security in Docker Delivery
Apcera: Agility and Security in Docker DeliveryApcera: Agility and Security in Docker Delivery
Apcera: Agility and Security in Docker Delivery
 
Delivering Policy & Trust to the Hybrid Cloud
Delivering Policy & Trust to the Hybrid CloudDelivering Policy & Trust to the Hybrid Cloud
Delivering Policy & Trust to the Hybrid Cloud
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 

Recently uploaded (20)

ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 

NATS Connector Framework - Boulder Meetup

  • 1. Simple, Fast, Secure Messaging for IoT, Cloud Native, and Microservices Boulder Meetup 6/7/2016
  • 2. Why do we need another messaging system?
  • 3. We are in a Messaging Renaissance Cloud Messaging is fastest growing segment of current messaging market. (Gartner 2013) New requirements for IoT, mobile, big data, and micro-services ● Legacy bloated platforms don’t work ● Open source first Massive sensor enablement wave ● 20.8 billion connected things by 2020 (Gartner) ● Driving requirements for “Trusted IoT”
  • 4. Created by Derek Collison Founder and CEO at Apcera ๏ CTO, Chief Architect at VMware ๏ Architected CloudFoundry ๏ Technical Director at Google ๏ SVP and Chief Architect at TIBCO The Vision Building Messaging Systems and Solutions > 20yrs Experienced Messaging Team
  • 5. ✓NATS is made for developers who don’t have the time to be messaging experts High-Performance Always on and available Extremely lightweight Easy to use At Most Once Delivery Publish/Subscribe Distributed Queue Request/Reply What is NATS?
  • 6. ๏ Performance ๏ Simplicity ‣ Single binary ‣ Text-based protocol! (http://nats.io/documentation/internals/nats- protocol/) ‣ No external dependencies ๏ Availability over anything - Dial-tone ๏ Small footprint & embeddable ๏ Just what you need, and none of what you don’t NATS DNA
  • 7. ๏ IoT Messaging ๏ High Fan-out Messaging ๏ Mobile and Big Data ๏ Microservices transport ๏ Service Discovery ๏ Replacing legacy messaging systems Some ways NATS is being used by developers
  • 8. How simple is simple?
  • 9. NATS is very, very simple and lightweight
  • 10. NATS is very, very simple and lightweight
  • 11. NATS is very, very simple and lightweight *Read more on Daniel Wertheim’s Blog: http://danielwertheim.se/nats-what-a-beautiful-protocol/
  • 12. How fast is fast?
  • 13. NATS is very, very fast
  • 14. NATS is very, very fast *Read more on Richard Seroter’s blog: http://bit.ly/22dNlYZ
  • 15. NATS = ~0 latency *Read more on Tyler Treat’s blog: http://bravenewgeek.com/benchmarking-message-queue-latency/
  • 16. NATS Streaming - Coming Soon! 16 ● NATS Streaming is open source data streaming, powered by NATS ● Features: ○ At-least-once delivery ○ Rate matching per subscriber ○ Replay by time or seqno offset ○ Last/initial value ○ Durable subscribers ● Clusterable, extensible (modular) storage subsystem ○ Memory ○ File ○ Future: Database/Other
  • 17. Growing Ecosystem – Get involved!
  • 18. Rapidly growing community of developers •Hundreds of meetup members (San Francisco, Denver, Toronto, London, Barcelona) •Hundreds of developers providing input in NATS Slack Community •4,000+ stars on GitHub •Dozens of excellent blog posts from the development community on www.nats. io/blog •Join the community! http://www.nats.io/community/
  • 19. GopherCon Workshop on NATS RSVP if you plan to attend: http://bit.ly/1XpeSq6
  • 20. Broad Client Support Apcera Supported Community ○ Go ○ Elixir ○ Java ○ node.js ○ C ○ C#/.NET ○ NGINX ○ Python (Asyncio and Tornado) ○ Ruby ○ Arduino ○ Erlang ○ Haskell ○ Lua ○ PHP ○ Perl ○ Python (Twisted) ○ Rust ○ Scala ○ Spring
  • 21. Rapidly growing community of developers Join the community! http://www. nats.io/community/
  • 23. ๏ There is a need to bridge to other technologies ๏ Permanent ๏ Temporary - Fill the Gap ๏ Host an exchange where users can share connectors ๏ Users gain exposure through OSS contributions A Need for Connectors
  • 24. ๏ Simple - A way to bridge NATS and other technologies. ๏ Reusable ๏ Not customized ๏ Goal that a connector implementation will meet about 75% of use cases. ๏ Optionally uses a NATS connector framework for ease of development What is a Connector?
  • 26. ๏ The NATS connector framework is a simple, straightforward, plugin-based driver. ๏ Reduces development time ๏ Aimed toward legacy technologies ๏ Java based ๏ Exploring a golang based framework ๏ Example - Redis Pub/Sub Connector NATS connector framework
  • 27. ๏ The framework is not suited to all technologies ๏ Embedding NATS elsewhere ๏ Resource Restrictions ๏ Other language bindings Other Types of Connectors
  • 29. ๏ Golden Rule ๏ Think of the user base… ๏ Ease of use ๏ Generalization ๏ Stability Development Guidelines
  • 30. ๏ Contributing is easy, just code a connector up and provide a link. ๏ Submit a PR or request an update the NATS website to link to your connector.Feel free to ping the slack channels ๏ Ask questions! #connectors slack channel ๏ We’ll be happy to review your work. ๏ http://www.nats.io/community - join Slack Contributing
  • 31. ๏ Documentation ๏ Overview, walkthrough, samples ๏ Code ๏ Easy Installation ๏ Simplicity drives usage ๏ Little Configuration ๏ Logging/Tracing for debugging ๏ Lower the frustration level Development Guidelines - Ease of Use
  • 32. ๏ Configurable, but not overly so ๏ Think 75% use case ๏ Defaults that just work ๏ Suggestion: JSON read from URL ๏ …Or whatever makes sense Development Guidelines - Generalization
  • 33. ๏ Unit Tests ๏ Worth their weight in gold. ๏ Coverage ๏ Check code coverage ๏ Fault Tolerant ๏ Handle Corner Cases ๏ Stay alive unless errors are truly fatal Development Guidelines - Stability
  • 34. • Submit a connector you build to us - Send a PR to nats-site repo on Github with a link to your connector on nats.io/community Accepted Connectors win you a NATS hoodie! Win some LIMITED EDITION NATS #SWAG !
  • 35. Colin Sullivan colin@nats.io Twitter: @ColinSullivan01 Github: ColinSullivan1 Brian Flannery brian@nats.io Twitter: @brianflannery www.nats.io Thank You!