SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
Eric Lubow
@elubow
elubow@simplereach.com
Message
Architectures
in Distributed
Systems
Message Architectures in Distributed Systems Eric Lubow @elubow
Overview
• SimpleReach
• Why is messaging important
• Goals
• Explanations
• Questions
Message Architectures in Distributed Systems Eric Lubow @elubow
Personal Vanity
• CTO of SimpleReach
• Co-author of Practical Cassandra
• Skydiver, Mixed Martial Artist,
Motorcyclist, Dog dad, NY Giants fan
• IronMatt Foundation for Pediatric Brian
Tumors (ironmatt.org)
Message Architectures in Distributed Systems Eric Lubow @elubow
Message Architectures in Distributed Systems Eric Lubow @elubow
Message Architectures in Distributed Systems Eric Lubow @elubow
• Millions of URLs per day
• Over 3.75 billion page views per month
• 7b events per day (~80k events/second)
• Auto-scale 175-190 machines depending on traffic
• Built a predictive measurement algorithm for the social web
SimpleReach
Message Architectures in Distributed Systems Eric Lubow @elubow
Why is Messaging Important?
• Most large scale systems discussions only talk about storage
• Direct high volumes of data around your infrastructure
• Control flow of data through your infrastructure
• Decouple important systems
• Scalability, Elasticity, Deliverability, and Redundancy
• Buffering and Asynchronous communication
Message Architectures in Distributed Systems Eric Lubow @elubow
The database is NOT a transport layer
App
❶
❹
❸
❷
incoming request
sync persist data
send response
async queue message
Data Flow
Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
Message Architectures in Distributed Systems Eric Lubow @elubow
Goals
• Consistent interfaces between systems
• Allow access to many toolsets
• Minimize downtime/Minimize cost of downtime
• High availability
• Clients should have minimal architecture knowledge
• Horizontal Scaling
• Controlled Data Flow Patterns
• Enrichment/In-stream Modification Schemes
• Monitoring and Instrumentation
Message Architectures in Distributed Systems Eric Lubow @elubow
Messaging Systems
• RabbitMQ
• ZeroMQ
• Kafka
• Amazon SQS
• NSQ
• ActiveMQ
• Resque
• Custom
Message Architectures in Distributed Systems Eric Lubow @elubow
What Did SimpleReach Choose?
Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
Message Architectures in Distributed Systems Eric Lubow @elubow
NSQ
• Distributed and de-centralized topology
• At least once delivery guaranteed
• Multicast style message routing
• Simple to configure and deploy
• Allow for maintenance windows with no downtime
• Ephemeral channels for testing
• Channel sampling
github.com/bitly/nsq
Message Architectures in Distributed Systems Eric Lubow @elubow
separate hosts
• a topic is a distinct stream of messages
(a single nsqd instance can have multiple
topics)
• a channel is an independent queue for a
topic (a topic can have multiple
channels)
• consumers discover producers by
querying nsqlookupd (a discovery
service for topics)
• topics and channels are created at
runtime (just start publishing/
subscribing)
nsqd
“metrics”
Channels
“event”
Topics
“enrichment”
“writer”
Consumers
AAABBB
Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
Topics and Channels
Message Architectures in Distributed Systems Eric Lubow @elubow
Everyone Speaks The Same Language
http:// + {“content-type”: “application/json”}
Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
Message Architectures in Distributed Systems Eric Lubow @elubow
Goals
• Consistent interfaces between systems
Message Architectures in Distributed Systems Eric Lubow @elubow
• nsqadmin provides a web interface to
administrate and introspect an NSQ cluster at
runtime (and empty, pause, or delete topics/
channels)
• nsq_to_http - utility that helps transport an
aggregate stream over HTTP
• nsq_to_file - utility that safely persists an
aggregated stream to disk
• nsq_stat - iostat like utility for a topic/channel
• nsq_tail - tail like utility for a topic/channel
NSQ Tools
Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
Message Architectures in Distributed Systems Eric Lubow @elubow
Right Tool For The Job
Message Architectures in Distributed Systems Eric Lubow @elubow
Goals
• Consistent interfaces between systems
• Allow access to many toolsets
Message Architectures in Distributed Systems Eric Lubow @elubow
NSQ
NSQD
API
consumer
NSQ
NSQD
API
NSQ
NSQD
API
consumer
nsqlookupd
nsqlookupd
PUBLISH
REGISTER
DISCOVER
SUBSCRIBE
How Does It Work?
Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
Message Architectures in Distributed Systems Eric Lubow @elubow
The Schrute of the Problem
Message Architectures in Distributed Systems Eric Lubow @elubow
Goals
• Consistent interfaces between systems
• Allow access to many toolsets
• Minimize downtime/Minimize cost of downtime
• High availability
Message Architectures in Distributed Systems Eric Lubow @elubow
Simple Deployment & Automation
• Chef cookbook - github.com/simplereach/chef-nsq
• Written in Go
• Easily distributable binaries
• Deploy lookup nodes
• Nsqd’s installed locally
Message Architectures in Distributed Systems Eric Lubow @elubow
Goals
• Consistent interfaces between systems
• Allow access to many toolsets
• Minimize downtime/Minimize cost of downtime
• High availability
• Clients should have minimal architecture knowledge
Message Architectures in Distributed Systems Eric Lubow @elubow
nsqlookupd nsqlookupd
consumer
➊ regularly poll for topic producers
➋ connect to all producers
HTTP requests
Runtime Discovery
Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
Message Architectures in Distributed Systems Eric Lubow @elubow
Goals
• Consistent interfaces between systems
• Allow access to many toolsets
• Minimize downtime/Minimize cost of downtime
• High availability
• Clients should have minimal architecture knowledge
• Horizontal Scaling
Message Architectures in Distributed Systems Eric Lubow @elubow
Path of a Packet
Internet
EC
InternalAPI
Solr
C*
Mongo
Redis
Vertica
API
Fire
Hose
SC
Consumers
Queue
Message Architectures in Distributed Systems Eric Lubow @elubow
Message Architectures in Distributed Systems Eric Lubow @elubow
Controlled Data Flow
Social Event
Collector
Social Data
Batch & Write
Processed Data
Batch & Write
Raw Data
Calculate Score Write
NSQ Broadcast NSQ
Message Architectures in Distributed Systems Eric Lubow @elubow
Controlled Data Flow
Social Event
Collector
Social Data
Batch & Write
Processed Data
Batch & Write
Raw Data
Calculate Score Write
NSQ Broadcast NSQ
Message Architectures in Distributed Systems Eric Lubow @elubow
Broadcast Importance for Polyglottany
Aggregator
Mongo Writer
Broadcast
Redis Writer
Cassandra Writer
Solr Writer
Calculator
NSQ
Vertica Writer
Message Architectures in Distributed Systems Eric Lubow @elubow
Message Architectures in Distributed Systems Eric Lubow @elubow
Controlled Data Flow
Social Event
Collector
Social Data
Batch & Write
Processed Data
Batch & Write
Raw Data
Calculate Score Write
NSQ Broadcast NSQ
Message Architectures in Distributed Systems Eric Lubow @elubow
Goals
• Consistent interfaces between systems
• Allow access to many toolsets
• Minimize downtime/Minimize cost of downtime
• High availability
• Clients should have minimal architecture knowledge
• Horizontal Scaling
• Controlled Data Flow
Message Architectures in Distributed Systems Eric Lubow @elubow
What Is Enrichment?
A mechanism to add
value to a message to
enhance processing in
your system
Message Architectures in Distributed Systems Eric Lubow @elubow
How Do We Enrich
Raw Event
Enriched
Event
Consumer A
Consumer B
Consumer C
NSQ Broadcast
Message Architectures in Distributed Systems Eric Lubow @elubow
Goals
• Consistent interfaces between systems
• Allow access to many toolsets
• Minimize downtime/Minimize cost of downtime
• High availability
• Clients should have minimal architecture knowledge
• Horizontal Scaling
• Controlled Data Flow
• Enrichment
Message Architectures in Distributed Systems Eric Lubow @elubow
Monitoring / Instrumentation
• Comes with statsd support built-in
• Statsd talks to both Graphite and nsqadmin
• Nsqadmin comes with graphs for message processing stats
• Nagios plugins available for monitoring topic/channel depth
• Average end to end latency calculations are done on a per-channel basis
Message Architectures in Distributed Systems Eric Lubow @elubow
Goals
• Consistent interfaces between systems
• Allow access to many toolsets
• Minimize downtime/Minimize cost of downtime
• High availability
• Clients should have minimal architecture knowledge
• Horizontal Scaling
• Controlled Data Flow
• Enrichment
• Monitoring and Instrumentation
Message Architectures in Distributed Systems Eric Lubow @elubow
Summary
• Large Systems are more than just storage
• Abstraction
• Highly Available
• Controlled Data Flow Patterns
• Monitoring & Automation
Message Architectures in Distributed Systems Eric Lubow @elubow
We’re
Hiring
Message Architectures in Distributed Systems Eric Lubow @elubow
Questions are guaranteed in life.
Answers aren’t.
Eric Lubow
@elubow
elubow@simplereach.com
Cassandra Day, New York
Thank you.

Más contenido relacionado

La actualidad más candente

Integration model : New Edge Technologies data center
Integration model : New Edge Technologies data centerIntegration model : New Edge Technologies data center
Integration model : New Edge Technologies data centerRachid ZINE
 
Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)bcantrill
 
Firewall in Perl by Chankey Pathak
Firewall in Perl by Chankey PathakFirewall in Perl by Chankey Pathak
Firewall in Perl by Chankey PathakChankey Pathak
 
penetration test using Kali linux seminar report
penetration test using Kali linux seminar reportpenetration test using Kali linux seminar report
penetration test using Kali linux seminar reportAbhayNaik8
 
Platform as reflection of values: Joyent, node.js, and beyond
Platform as reflection of values: Joyent, node.js, and beyondPlatform as reflection of values: Joyent, node.js, and beyond
Platform as reflection of values: Joyent, node.js, and beyondbcantrill
 
Linux/Unix Night - (PEN) Testing Toolkits (English)
Linux/Unix Night - (PEN) Testing Toolkits (English)Linux/Unix Night - (PEN) Testing Toolkits (English)
Linux/Unix Night - (PEN) Testing Toolkits (English)Jelmer de Reus
 
The Internet-of-things: Architecting for the deluge of data
The Internet-of-things: Architecting for the deluge of dataThe Internet-of-things: Architecting for the deluge of data
The Internet-of-things: Architecting for the deluge of databcantrill
 
Experience Using RIR Whois
Experience Using RIR WhoisExperience Using RIR Whois
Experience Using RIR WhoisAPNIC
 
Kali linux and some features [view in Full screen mode]
Kali linux and some features [view in Full screen mode]Kali linux and some features [view in Full screen mode]
Kali linux and some features [view in Full screen mode]abdou Bahassou
 
Gaming on AWS - 5. 네트워크 공격에 유연한 AWS 아키텍처 알아보기
Gaming on AWS - 5. 네트워크 공격에 유연한 AWS 아키텍처 알아보기Gaming on AWS - 5. 네트워크 공격에 유연한 AWS 아키텍처 알아보기
Gaming on AWS - 5. 네트워크 공격에 유연한 AWS 아키텍처 알아보기Amazon Web Services Korea
 
OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015Mark Voelker
 
Attack All the Layers: What's Working during Pentests (OWASP NYC)
Attack All the Layers: What's Working during Pentests (OWASP NYC)Attack All the Layers: What's Working during Pentests (OWASP NYC)
Attack All the Layers: What's Working during Pentests (OWASP NYC)Scott Sutherland
 
kali linux Presentaion
 kali linux Presentaion kali linux Presentaion
kali linux PresentaionDev Gandhi
 

La actualidad más candente (20)

Integration model : New Edge Technologies data center
Integration model : New Edge Technologies data centerIntegration model : New Edge Technologies data center
Integration model : New Edge Technologies data center
 
Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)
 
Firewall in Perl by Chankey Pathak
Firewall in Perl by Chankey PathakFirewall in Perl by Chankey Pathak
Firewall in Perl by Chankey Pathak
 
kali linux
kali linuxkali linux
kali linux
 
penetration test using Kali linux seminar report
penetration test using Kali linux seminar reportpenetration test using Kali linux seminar report
penetration test using Kali linux seminar report
 
Kali linux
Kali linuxKali linux
Kali linux
 
Platform as reflection of values: Joyent, node.js, and beyond
Platform as reflection of values: Joyent, node.js, and beyondPlatform as reflection of values: Joyent, node.js, and beyond
Platform as reflection of values: Joyent, node.js, and beyond
 
Kali linux tutorial
Kali linux tutorialKali linux tutorial
Kali linux tutorial
 
Kali linux
Kali linuxKali linux
Kali linux
 
Linux Training Center Pune
Linux Training Center PuneLinux Training Center Pune
Linux Training Center Pune
 
Linux/Unix Night - (PEN) Testing Toolkits (English)
Linux/Unix Night - (PEN) Testing Toolkits (English)Linux/Unix Night - (PEN) Testing Toolkits (English)
Linux/Unix Night - (PEN) Testing Toolkits (English)
 
The Internet-of-things: Architecting for the deluge of data
The Internet-of-things: Architecting for the deluge of dataThe Internet-of-things: Architecting for the deluge of data
The Internet-of-things: Architecting for the deluge of data
 
Experience Using RIR Whois
Experience Using RIR WhoisExperience Using RIR Whois
Experience Using RIR Whois
 
Kali linux and some features [view in Full screen mode]
Kali linux and some features [view in Full screen mode]Kali linux and some features [view in Full screen mode]
Kali linux and some features [view in Full screen mode]
 
Gaming on AWS - 5. 네트워크 공격에 유연한 AWS 아키텍처 알아보기
Gaming on AWS - 5. 네트워크 공격에 유연한 AWS 아키텍처 알아보기Gaming on AWS - 5. 네트워크 공격에 유연한 AWS 아키텍처 알아보기
Gaming on AWS - 5. 네트워크 공격에 유연한 AWS 아키텍처 알아보기
 
OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015
 
Avalon Media System update
Avalon Media System updateAvalon Media System update
Avalon Media System update
 
Kali linux
Kali linuxKali linux
Kali linux
 
Attack All the Layers: What's Working during Pentests (OWASP NYC)
Attack All the Layers: What's Working during Pentests (OWASP NYC)Attack All the Layers: What's Working during Pentests (OWASP NYC)
Attack All the Layers: What's Working during Pentests (OWASP NYC)
 
kali linux Presentaion
 kali linux Presentaion kali linux Presentaion
kali linux Presentaion
 

Destacado

NSQ-Centric Architecture (GoCon Autumn 2014)
NSQ-Centric Architecture (GoCon Autumn 2014)NSQ-Centric Architecture (GoCon Autumn 2014)
NSQ-Centric Architecture (GoCon Autumn 2014)guregu
 
The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, KafkaThe Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, KafkaAll Things Open
 
NATS - A new nervous system for distributed cloud platforms
NATS - A new nervous system for distributed cloud platformsNATS - A new nervous system for distributed cloud platforms
NATS - A new nervous system for distributed cloud platformsDerek Collison
 
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 McQuearyApcera
 
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 NATSApcera
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 

Destacado (7)

NSQ-Centric Architecture (GoCon Autumn 2014)
NSQ-Centric Architecture (GoCon Autumn 2014)NSQ-Centric Architecture (GoCon Autumn 2014)
NSQ-Centric Architecture (GoCon Autumn 2014)
 
The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, KafkaThe Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
 
NATS - A new nervous system for distributed cloud platforms
NATS - A new nervous system for distributed cloud platformsNATS - A new nervous system for distributed cloud platforms
NATS - A new nervous system for distributed cloud platforms
 
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
 
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
 
Go Workshop Day 0
Go Workshop Day 0Go Workshop Day 0
Go Workshop Day 0
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 

Similar a Cassandra Day NY 2014: Message Architectures in Distributed Systems at SimpleReach

Message Architectures in Distributed Systems - Data Day Texas 2013-01-11
Message Architectures in Distributed Systems - Data Day Texas 2013-01-11Message Architectures in Distributed Systems - Data Day Texas 2013-01-11
Message Architectures in Distributed Systems - Data Day Texas 2013-01-11Eric Lubow
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...WSO2
 
Building an Event Bus at Scale
Building an Event Bus at ScaleBuilding an Event Bus at Scale
Building an Event Bus at Scalejimriecken
 
Reactive Development: Commands, Actors and Events. Oh My!!
Reactive Development: Commands, Actors and Events.  Oh My!!Reactive Development: Commands, Actors and Events.  Oh My!!
Reactive Development: Commands, Actors and Events. Oh My!!David Hoerster
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeAlex Thissen
 
Microservices in Go with Go kit
Microservices in Go with Go kitMicroservices in Go with Go kit
Microservices in Go with Go kitShiju Varghese
 
ITCamp 2011 - Cristian Lefter - SQL Server code-name Denali
ITCamp 2011 - Cristian Lefter - SQL Server code-name DenaliITCamp 2011 - Cristian Lefter - SQL Server code-name Denali
ITCamp 2011 - Cristian Lefter - SQL Server code-name DenaliITCamp
 
A pure Java MQTT Stack for IoT
A pure Java MQTT Stack for IoTA pure Java MQTT Stack for IoT
A pure Java MQTT Stack for IoTDominik Obermaier
 
Coding Secure Infrastructure in the Cloud using the PIE framework
Coding Secure Infrastructure in the Cloud using the PIE frameworkCoding Secure Infrastructure in the Cloud using the PIE framework
Coding Secure Infrastructure in the Cloud using the PIE frameworkJames Wickett
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Ahmed Misbah
 
DCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDocker, Inc.
 
e-infrastructural needs to support informatics
e-infrastructural needs to support informaticse-infrastructural needs to support informatics
e-infrastructural needs to support informaticsDavid Wallom
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0Vinod Wilson
 

Similar a Cassandra Day NY 2014: Message Architectures in Distributed Systems at SimpleReach (20)

Message Architectures in Distributed Systems - Data Day Texas 2013-01-11
Message Architectures in Distributed Systems - Data Day Texas 2013-01-11Message Architectures in Distributed Systems - Data Day Texas 2013-01-11
Message Architectures in Distributed Systems - Data Day Texas 2013-01-11
 
Architecting for Scale
Architecting for ScaleArchitecting for Scale
Architecting for Scale
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
 
Building an Event Bus at Scale
Building an Event Bus at ScaleBuilding an Event Bus at Scale
Building an Event Bus at Scale
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
Reactive Development: Commands, Actors and Events. Oh My!!
Reactive Development: Commands, Actors and Events.  Oh My!!Reactive Development: Commands, Actors and Events.  Oh My!!
Reactive Development: Commands, Actors and Events. Oh My!!
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape
 
Microservices in Go with Go kit
Microservices in Go with Go kitMicroservices in Go with Go kit
Microservices in Go with Go kit
 
ITCamp 2011 - Cristian Lefter - SQL Server code-name Denali
ITCamp 2011 - Cristian Lefter - SQL Server code-name DenaliITCamp 2011 - Cristian Lefter - SQL Server code-name Denali
ITCamp 2011 - Cristian Lefter - SQL Server code-name Denali
 
Overview of ESB at Azilen Tech Meetup
Overview of ESB at Azilen Tech MeetupOverview of ESB at Azilen Tech Meetup
Overview of ESB at Azilen Tech Meetup
 
Vladimir_Ulogov_Resume
Vladimir_Ulogov_ResumeVladimir_Ulogov_Resume
Vladimir_Ulogov_Resume
 
A pure Java MQTT Stack for IoT
A pure Java MQTT Stack for IoTA pure Java MQTT Stack for IoT
A pure Java MQTT Stack for IoT
 
Coding Secure Infrastructure in the Cloud using the PIE framework
Coding Secure Infrastructure in the Cloud using the PIE frameworkCoding Secure Infrastructure in the Cloud using the PIE framework
Coding Secure Infrastructure in the Cloud using the PIE framework
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)
 
DCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to Microservices
 
e-infrastructural needs to support informatics
e-infrastructural needs to support informaticse-infrastructural needs to support informatics
e-infrastructural needs to support informatics
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Git SVN Migrate Reasons
Git SVN Migrate ReasonsGit SVN Migrate Reasons
Git SVN Migrate Reasons
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 

Más de DataStax Academy

Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftForrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftDataStax Academy
 
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseIntroduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseDataStax Academy
 
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraIntroduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraDataStax Academy
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsDataStax Academy
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingDataStax Academy
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackDataStax Academy
 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache CassandraDataStax Academy
 
Production Ready Cassandra
Production Ready CassandraProduction Ready Cassandra
Production Ready CassandraDataStax Academy
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonDataStax Academy
 
Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1DataStax Academy
 
Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2DataStax Academy
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First ClusterDataStax Academy
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with DseDataStax Academy
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraDataStax Academy
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseDataStax Academy
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraDataStax Academy
 

Más de DataStax Academy (20)

Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftForrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
 
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseIntroduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph Database
 
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraIntroduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart Labs
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data Modeling
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stack
 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache Cassandra
 
Coursera Cassandra Driver
Coursera Cassandra DriverCoursera Cassandra Driver
Coursera Cassandra Driver
 
Production Ready Cassandra
Production Ready CassandraProduction Ready Cassandra
Production Ready Cassandra
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
 
Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1
 
Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First Cluster
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with Dse
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache Cassandra
 
Cassandra Core Concepts
Cassandra Core ConceptsCassandra Core Concepts
Cassandra Core Concepts
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax Enterprise
 
Bad Habits Die Hard
Bad Habits Die Hard Bad Habits Die Hard
Bad Habits Die Hard
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache Cassandra
 
Advanced Cassandra
Advanced CassandraAdvanced Cassandra
Advanced Cassandra
 

Último

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Último (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

Cassandra Day NY 2014: Message Architectures in Distributed Systems at SimpleReach

  • 2. Message Architectures in Distributed Systems Eric Lubow @elubow Overview • SimpleReach • Why is messaging important • Goals • Explanations • Questions
  • 3. Message Architectures in Distributed Systems Eric Lubow @elubow Personal Vanity • CTO of SimpleReach • Co-author of Practical Cassandra • Skydiver, Mixed Martial Artist, Motorcyclist, Dog dad, NY Giants fan • IronMatt Foundation for Pediatric Brian Tumors (ironmatt.org)
  • 4. Message Architectures in Distributed Systems Eric Lubow @elubow
  • 5. Message Architectures in Distributed Systems Eric Lubow @elubow
  • 6. Message Architectures in Distributed Systems Eric Lubow @elubow • Millions of URLs per day • Over 3.75 billion page views per month • 7b events per day (~80k events/second) • Auto-scale 175-190 machines depending on traffic • Built a predictive measurement algorithm for the social web SimpleReach
  • 7. Message Architectures in Distributed Systems Eric Lubow @elubow Why is Messaging Important? • Most large scale systems discussions only talk about storage • Direct high volumes of data around your infrastructure • Control flow of data through your infrastructure • Decouple important systems • Scalability, Elasticity, Deliverability, and Redundancy • Buffering and Asynchronous communication
  • 8. Message Architectures in Distributed Systems Eric Lubow @elubow The database is NOT a transport layer
  • 9. App ❶ ❹ ❸ ❷ incoming request sync persist data send response async queue message Data Flow Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 10. Message Architectures in Distributed Systems Eric Lubow @elubow Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge • Horizontal Scaling • Controlled Data Flow Patterns • Enrichment/In-stream Modification Schemes • Monitoring and Instrumentation
  • 11. Message Architectures in Distributed Systems Eric Lubow @elubow Messaging Systems • RabbitMQ • ZeroMQ • Kafka • Amazon SQS • NSQ • ActiveMQ • Resque • Custom
  • 12. Message Architectures in Distributed Systems Eric Lubow @elubow What Did SimpleReach Choose? Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 13. Message Architectures in Distributed Systems Eric Lubow @elubow NSQ • Distributed and de-centralized topology • At least once delivery guaranteed • Multicast style message routing • Simple to configure and deploy • Allow for maintenance windows with no downtime • Ephemeral channels for testing • Channel sampling github.com/bitly/nsq
  • 14. Message Architectures in Distributed Systems Eric Lubow @elubow separate hosts • a topic is a distinct stream of messages (a single nsqd instance can have multiple topics) • a channel is an independent queue for a topic (a topic can have multiple channels) • consumers discover producers by querying nsqlookupd (a discovery service for topics) • topics and channels are created at runtime (just start publishing/ subscribing) nsqd “metrics” Channels “event” Topics “enrichment” “writer” Consumers AAABBB Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14 Topics and Channels
  • 15. Message Architectures in Distributed Systems Eric Lubow @elubow Everyone Speaks The Same Language http:// + {“content-type”: “application/json”} Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 16. Message Architectures in Distributed Systems Eric Lubow @elubow Goals • Consistent interfaces between systems
  • 17. Message Architectures in Distributed Systems Eric Lubow @elubow • nsqadmin provides a web interface to administrate and introspect an NSQ cluster at runtime (and empty, pause, or delete topics/ channels) • nsq_to_http - utility that helps transport an aggregate stream over HTTP • nsq_to_file - utility that safely persists an aggregated stream to disk • nsq_stat - iostat like utility for a topic/channel • nsq_tail - tail like utility for a topic/channel NSQ Tools Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 18. Message Architectures in Distributed Systems Eric Lubow @elubow Right Tool For The Job
  • 19. Message Architectures in Distributed Systems Eric Lubow @elubow Goals • Consistent interfaces between systems • Allow access to many toolsets
  • 20. Message Architectures in Distributed Systems Eric Lubow @elubow NSQ NSQD API consumer NSQ NSQD API NSQ NSQD API consumer nsqlookupd nsqlookupd PUBLISH REGISTER DISCOVER SUBSCRIBE How Does It Work? Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 21. Message Architectures in Distributed Systems Eric Lubow @elubow The Schrute of the Problem
  • 22. Message Architectures in Distributed Systems Eric Lubow @elubow Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability
  • 23. Message Architectures in Distributed Systems Eric Lubow @elubow Simple Deployment & Automation • Chef cookbook - github.com/simplereach/chef-nsq • Written in Go • Easily distributable binaries • Deploy lookup nodes • Nsqd’s installed locally
  • 24. Message Architectures in Distributed Systems Eric Lubow @elubow Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge
  • 25. Message Architectures in Distributed Systems Eric Lubow @elubow nsqlookupd nsqlookupd consumer ➊ regularly poll for topic producers ➋ connect to all producers HTTP requests Runtime Discovery Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 26. Message Architectures in Distributed Systems Eric Lubow @elubow Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge • Horizontal Scaling
  • 27. Message Architectures in Distributed Systems Eric Lubow @elubow Path of a Packet Internet EC InternalAPI Solr C* Mongo Redis Vertica API Fire Hose SC Consumers Queue
  • 28. Message Architectures in Distributed Systems Eric Lubow @elubow
  • 29. Message Architectures in Distributed Systems Eric Lubow @elubow Controlled Data Flow Social Event Collector Social Data Batch & Write Processed Data Batch & Write Raw Data Calculate Score Write NSQ Broadcast NSQ
  • 30. Message Architectures in Distributed Systems Eric Lubow @elubow Controlled Data Flow Social Event Collector Social Data Batch & Write Processed Data Batch & Write Raw Data Calculate Score Write NSQ Broadcast NSQ
  • 31. Message Architectures in Distributed Systems Eric Lubow @elubow Broadcast Importance for Polyglottany Aggregator Mongo Writer Broadcast Redis Writer Cassandra Writer Solr Writer Calculator NSQ Vertica Writer
  • 32. Message Architectures in Distributed Systems Eric Lubow @elubow
  • 33. Message Architectures in Distributed Systems Eric Lubow @elubow Controlled Data Flow Social Event Collector Social Data Batch & Write Processed Data Batch & Write Raw Data Calculate Score Write NSQ Broadcast NSQ
  • 34. Message Architectures in Distributed Systems Eric Lubow @elubow Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge • Horizontal Scaling • Controlled Data Flow
  • 35. Message Architectures in Distributed Systems Eric Lubow @elubow What Is Enrichment? A mechanism to add value to a message to enhance processing in your system
  • 36. Message Architectures in Distributed Systems Eric Lubow @elubow How Do We Enrich Raw Event Enriched Event Consumer A Consumer B Consumer C NSQ Broadcast
  • 37. Message Architectures in Distributed Systems Eric Lubow @elubow Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge • Horizontal Scaling • Controlled Data Flow • Enrichment
  • 38. Message Architectures in Distributed Systems Eric Lubow @elubow Monitoring / Instrumentation • Comes with statsd support built-in • Statsd talks to both Graphite and nsqadmin • Nsqadmin comes with graphs for message processing stats • Nagios plugins available for monitoring topic/channel depth • Average end to end latency calculations are done on a per-channel basis
  • 39. Message Architectures in Distributed Systems Eric Lubow @elubow Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge • Horizontal Scaling • Controlled Data Flow • Enrichment • Monitoring and Instrumentation
  • 40. Message Architectures in Distributed Systems Eric Lubow @elubow Summary • Large Systems are more than just storage • Abstraction • Highly Available • Controlled Data Flow Patterns • Monitoring & Automation
  • 41. Message Architectures in Distributed Systems Eric Lubow @elubow We’re Hiring
  • 42. Message Architectures in Distributed Systems Eric Lubow @elubow Questions are guaranteed in life. Answers aren’t. Eric Lubow @elubow elubow@simplereach.com Cassandra Day, New York Thank you.