At the NATS June Meetup in Boulder, CO, Colin Sullivan (Principal Engineer on the NATS team) gives an overview of NATS, the NATS Connector Framework, and how to get started building connectors for NATS.
You can learn more about NATS at http://www.nats.io
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
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/
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 !