SlideShare a Scribd company logo
CMB – A Message Bus for the Cloud
CMB – A Message Bus for the Cloud
CQS – Queuing Service
CNS – Topic based Pub Sub Service
Why did we build our own?
•  General purpose message bus to replace project driven one-off
solutions
•  Smooth data center failover, maybe even “active-active” queues
•  Must scale to millions of queues and 1000s of messages/sec (for
example 1 queue per STB)
•  Tight latency requirements (“10ms response time 95th pct”)
•  Evaluated other options to arrive at AWS SQS/SNS
AWS SQS Primer
“Simple Queuing Service”
•  Focus on guaranteed delivery
•  Best effort on orderly delivery, duplicates
•  Few simple core APIs:
SendMessage() ReceiveMessage() DeleteMessage()
•  Do not trust message recipients
Advantages of adopting an API
If you do it on your own:
•  API design typically biased towards first use case
•  Almost guaranteed: You won’t get it right the first time (iterations)
•  Difficult for new users to adopt: Documentation, tools, community,…
Why did we build our own?
AWS	
  SQS	
  
Guaranteed	
  Delivery	
   +	
  
Simple,	
  Robust	
  API	
   +	
  
Scalability	
   +	
  
Ac;ve-­‐Ac;ve	
   ?	
  
DC	
  Failover	
   ?	
  
Latency	
  &	
  Throughput	
   ?	
  
Limita;ons	
  (Msg	
  Size,	
  #	
  Ar;facts,	
  …)	
   ?	
  
“Build a horizontally scalable queuing service on top of
Cassandra (and Redis) which is API compatible with
AWS SQS / SNS API”
CQS over Cassandra and Redis
Cassandra
•  Cross-DC persistence and replication
•  Proven horizontal scalability
Redis
•  Meet latency requirements
•  Help with best effort ordering
•  Handle Visibility Timeout (VTO)
Cassandra Data Modeling
How to represent queued messages in Cassandra?
•  Single Column Queue
•  Single Row Queue
•  Multi-Row Queue
Single Column Queue
Single Row Queue
Multi-Row Queue
CQS Data Flow Example
1.  SendMessage(MSG1)
2.  SendMessage(MSG2)
3.  SendMessage(MSG3)
4.  MSG1 = ReceiveMessage()
5.  DeleteMessage(MSG1)
CQS Architecture Recap
Cassandra Persistence Layer
•  Messages sharded across 100 rows per queue
•  Avoid wide rows (> 500K)
•  Minimize churn (Tombstones)
•  Distribute queue among Cassandra nodes
Redis Caching Layer
•  To meet latency requirements
•  Payload cache (kicks in after first miss, pre-load next 10k)
•  Improve FIFOness by storing Msg IDs in Redis List
•  Handle message visibility entirely in Redis (Hashtable)
CQS Key Cassandra Features
Persistence and failover
•  Cross-DC replication in combination with Local Quorum Reads/Writes
(tunable consistency)
Millions of queues, spiky traffic patterns
•  Massive horizontal scalability
Message order (FIFOness) / future dated messages
•  Wide rows, composite column keys / TimeUUID and column sort order
Message retention period (expiration)
•  TTL
Fast lookup of static metadata (Queues, Users etc.)
•  Row Cache, Secondary Indexes
CQS Scalability
•  Send(), Receive() and Delete() scale with Cassandra
Ring, API Servers (stateless) and Redis Shards
•  Are constant time operations
•  Queues not sharded across Redis servers!
CQS Availability
•  Depends on availability of Cassandra
•  Service functions without Redis!
CQS DC Failover
AWS SNS API
“Simple Notification Service”
•  Topic based Publish/Subscribe Service
•  Supported protocols: HTTP/CQS/SQS
•  Few simple core APIs
CreateTopic() / DeleteTopic()
Subscribe() / Unsubscribe()
ConfirmSubscription()
Publish()
•  Do not trust message recipients (redelivery policy)
CNS Data Flow Example
•  Single operation: Publish message MSG1 to a topic
T with four Subscribers S1, S2, S5, S6.
•  S1, S2 are HTTP endpoints
•  S5, S6 are CQS queues
CNS Architecture Recap
•  CQS Queue preserves messages when Publish
Workers are down or overloaded
•  CQS Visibility Timeout takes care of guaranteed
delivery
•  Retry policy improves guaranteed delivery for
temporarily unavailable endpoints (http)
•  Publish Workers hardened for rogue endpoints (failing
endpoints, slow endpoints, …)
Differences SQS/SNS and CQS/CNS
Goal: Full API compatibility
Current state:
•  All APIs implemented, most parameters supported
•  Can use AWS Java SDK and others
Limitations:
•  AWS4 signatures not supported (V1 and V2 ok)
•  SMS endpoints not supported, limited email support
Enhancements:
•  Additional APIs for monitoring and management
•  Unlimited number of queues, topics and subscriptions
•  Adjustable message size and other parameters (MSG <= 64KB, LP <= 20 sec, DS <= 900 sec, RP, …)
CMB Ready for Production Use?
•  Code of CMB Core is stable
•  Extensive testing done (including throughput
scalability testing)
•  In use at Comcast (Sports, DVR, …)
Testing Goals
•  Functional testing (unit tests, good code coverage)
•  Stress testing (simulate Redis outage, data center failover)
•  Endurance testing
•  Load testing: Verify linear horizontal scalability (CQS / CNS
throughput scalability)
CQS Throughput Scalability
•  Throughput as a function of Cassandra Ring size
•  Increase load until throughput (msg/sec) reaches a maximum
•  Increase ring size and re-test
•  Ensure sufficient API and Redis capacity to support largest ring
•  Deployment: 10 API Servers, 5 Redis Shards, 4-16 Node Cassandra
Ring
CQS Throughput Scalability
#	
  Load	
  Gen	
   #	
  API	
  Servers	
   #	
  Redis	
  Shards	
   Ring	
  Size	
   API	
  /	
  Sec	
   P99	
  
5	
   10	
   5	
   4	
   2832	
   <=	
  100	
  ms	
  
5	
   10	
   5	
   8	
   6072	
   <=	
  100	
  ms	
  
5	
   10	
   5	
   12	
   9472	
   <=	
  100	
  ms	
  
6	
   12	
   6	
   16	
   11667	
   <=	
  100	
  ms	
  
8	
   15	
   7	
   20	
   13514	
   <=	
  100	
  ms	
  
8	
   15	
   7	
   24	
   15365	
   <=	
  100	
  ms	
  
0	
  
2000	
  
4000	
  
6000	
  
8000	
  
10000	
  
12000	
  
14000	
  
16000	
  
18000	
  
4	
   8	
   12	
   16	
   20	
   24	
  
API/sec	
  
Ring	
  Size	
  
CNS Throughput Scalability
•  Most important metric: End-to-end latency
•  Fixed number of subscribers, gradually increase #msg/sec published
until system is “overwhelmed”
•  Increase number of Publish Workers and re-test
•  Deployment: 8 node Cassandra Ring, 2 API Servers, 2 Redis Shards,
3-6 Publish Workers
•  Test setup: Single topic with 100 HTTP subscribers, 10 min test
duration
CNS Throughput Scalability
3 Publish Workers
#PUB/
SEC	
  
#MSG/
SEC	
  
AVG(LAT)	
  
	
  
API	
  	
  
AVG
(RT)	
  
	
  
API	
  	
  
P95(RT)	
  
	
  
API	
  
AVG(CQ
S)	
  
	
  
API	
  
P95(CQ
S)	
  
	
  
PROD	
  
AVG(RT
)	
  
	
  
PROD	
  
P95(RT)	
  
	
  
PROD	
  
AVG(CQ
S)	
  
	
  
PROD	
  
P95(CQS)	
  
	
  
CONS	
  
AVG(RT)	
  
	
  
CONS	
  
P95(RT)	
  
	
  
CONS	
  
AVG(CQS)	
  
	
  
CONS	
  
P95(CQS
)	
  
	
  
HTTP	
  
AVG(RT)	
  
	
  
HTTP	
  
P95(CQS
)	
  
	
  
5	
   500	
   198	
   21	
   44	
   10	
   26	
   77	
   150	
   77	
   155	
   47	
   96	
   38	
   85	
   12	
   18	
  
10	
   1000	
   177	
   15	
   30	
   8	
   16	
   68	
   119	
   68	
   118	
   39	
   70	
   31	
   59	
   12	
   17	
  
20	
   2000	
   160	
   16	
   29	
   9	
   17	
   69	
   120	
   69	
   120	
   40	
   69	
   31	
   59	
   9	
   16	
  
40	
   4000	
   209	
   18	
   37	
   10	
   22	
   78	
   138	
   78	
   139	
   41	
   74	
   32	
   62	
   11	
   18	
  
80	
   8000	
   75656	
   28	
   61	
   14	
   27	
   237	
   1020	
   237	
   1020	
   143	
   790	
   131	
   770	
   14	
   21	
  
CNS Throughput Scalability
6 Publish Workers
#PUB/
SEC	
  
#MSG/SEC	
  
AVG(LAT)	
  
	
  
API	
  	
  
AVG
(RT)	
  
	
  
API	
  	
  
P95(RT)	
  
	
  
API	
  
AVG(CQ
S)	
  
	
  
API	
  
P95(CQ
S)	
  
	
  
PROD	
  
AVG(RT
)	
  
	
  
PROD	
  
P95(RT)	
  
	
  
PROD	
  
AVG(CQ
S)	
  
	
  
PROD	
  
P95(CQS)	
  
	
  
CONS	
  
AVG(RT)	
  
	
  
CONS	
  
P95(RT)	
  
	
  
CONS	
  
AVG(CQS)	
  
	
  
CONS	
  
P95(CQS
)	
  
	
  
HTTP	
  
AVG(RT)	
  
	
  
HTTP	
  
P95(CQS
)	
  
	
  
5	
   500	
   247	
   37	
   117	
   19	
   66	
   141	
   290	
   139	
   290	
   77	
   200	
   57	
   160	
   18	
   34	
  
10	
   1000	
   226	
   41	
   130	
   21	
   79	
   163	
   380	
   162	
   370	
   79	
   200	
   58	
   160	
   17	
   39	
  
20	
   2000	
   199	
   37	
   118	
   20	
   74	
   133	
   280	
   133	
   280	
   68	
   180	
   50	
   150	
   11	
   21	
  
40	
   4000	
   225	
   45	
   140	
   25	
   110	
   148	
   320	
   148	
   320	
   76	
   210	
   53	
   170	
   18	
   25	
  
80	
   8000	
   267	
   48	
   126	
   25	
   80	
   149	
   300	
   149	
   300	
   77	
   180	
   58	
   150	
   22	
   38	
  
160	
   16000	
   145135	
   76	
   180	
   41	
   120	
   228	
   460	
   228	
   460	
   115	
   280	
   97	
   250	
   28	
   70	
  
0
200
400
600
800
1000
1200
500 1000 2000 4000 8000
Latency(ms)
Throughput (Msgs/Sec)
6 workers
3 workers
CNS	
  Throughput	
  Scalability	
  
Use Case: X1 Sports App
Use Case: X1 Sports App
Use Case: X1 Sports App
Moving Forward
•  Follow SNS / SQS APIs
•  More load and stress testing
•  Ease of deployment and scale up
•  More in-house production deployments (currently isolated
by application)
•  CQS as a Service
Thank You!
http://github.com/Comcast/cmb
http://groups.google.com/forum/#!forum/cmb-user-forum
bwolf@sv.comcast.com
BACKUP
CNS Endurance Test
Single	
  topic	
  with	
  5	
  HTTP	
  subscribers,	
  65	
  msg/sec	
  published	
  
14	
  mio	
  messages	
  published	
  over	
  12hrs	
  
Use Case: EAS

More Related Content

What's hot

Cassandra Performance and Scalability on AWS
Cassandra Performance and Scalability on AWSCassandra Performance and Scalability on AWS
Cassandra Performance and Scalability on AWS
Adrian Cockcroft
 
Scylla Summit 2018: Scylla Feature Talks - Scylla Streaming and Repair Updates
Scylla Summit 2018: Scylla Feature Talks - Scylla Streaming and Repair UpdatesScylla Summit 2018: Scylla Feature Talks - Scylla Streaming and Repair Updates
Scylla Summit 2018: Scylla Feature Talks - Scylla Streaming and Repair Updates
ScyllaDB
 
PlayStation and Cassandra Streams (Alexander Filipchik & Dustin Pham, Sony) |...
PlayStation and Cassandra Streams (Alexander Filipchik & Dustin Pham, Sony) |...PlayStation and Cassandra Streams (Alexander Filipchik & Dustin Pham, Sony) |...
PlayStation and Cassandra Streams (Alexander Filipchik & Dustin Pham, Sony) |...
DataStax
 
kafka
kafkakafka
Scylla Summit 2018: Keeping Your Latency SLAs No Matter What!
Scylla Summit 2018: Keeping Your Latency SLAs No Matter What!Scylla Summit 2018: Keeping Your Latency SLAs No Matter What!
Scylla Summit 2018: Keeping Your Latency SLAs No Matter What!
ScyllaDB
 
Streaming and Messaging
Streaming and MessagingStreaming and Messaging
Streaming and Messaging
Xin Wang
 
Introduction to Amazon Relational Database Service
Introduction to Amazon Relational Database ServiceIntroduction to Amazon Relational Database Service
Introduction to Amazon Relational Database Service
Amazon Web Services
 
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Amazon Web Services
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
Steven Wu
 
Netflix keystone streaming data pipeline @scale in the cloud-dbtb-2016
Netflix keystone   streaming data pipeline @scale in the cloud-dbtb-2016Netflix keystone   streaming data pipeline @scale in the cloud-dbtb-2016
Netflix keystone streaming data pipeline @scale in the cloud-dbtb-2016
Monal Daxini
 
Running Cassandra on Amazon EC2
Running Cassandra on Amazon EC2Running Cassandra on Amazon EC2
Running Cassandra on Amazon EC2
Dave Gardner
 
RDS for MySQL, No BS Operations and Patterns
RDS for MySQL, No BS Operations and PatternsRDS for MySQL, No BS Operations and Patterns
RDS for MySQL, No BS Operations and Patterns
Laine Campbell
 
Another Day, Another Billion Packets
Another Day, Another Billion PacketsAnother Day, Another Billion Packets
Another Day, Another Billion Packets
Amazon Web Services
 
Deep dive into Apache Kafka consumption
Deep dive into Apache Kafka consumptionDeep dive into Apache Kafka consumption
Deep dive into Apache Kafka consumption
Alexandre Tamborrino
 
Running Cassandra in AWS
Running Cassandra in AWSRunning Cassandra in AWS
Running Cassandra in AWS
DataStax Academy
 
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
Amazon Web Services
 
Cassandra CLuster Management by Japan Cassandra Community
Cassandra CLuster Management by Japan Cassandra CommunityCassandra CLuster Management by Japan Cassandra Community
Cassandra CLuster Management by Japan Cassandra Community
Hiromitsu Komatsu
 
Kafka Reliability - When it absolutely, positively has to be there
Kafka Reliability - When it absolutely, positively has to be thereKafka Reliability - When it absolutely, positively has to be there
Kafka Reliability - When it absolutely, positively has to be there
Gwen (Chen) Shapira
 
Micro-batching: High-performance writes
Micro-batching: High-performance writesMicro-batching: High-performance writes
Micro-batching: High-performance writes
Instaclustr
 
Exactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache KafkaExactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache Kafka
confluent
 

What's hot (20)

Cassandra Performance and Scalability on AWS
Cassandra Performance and Scalability on AWSCassandra Performance and Scalability on AWS
Cassandra Performance and Scalability on AWS
 
Scylla Summit 2018: Scylla Feature Talks - Scylla Streaming and Repair Updates
Scylla Summit 2018: Scylla Feature Talks - Scylla Streaming and Repair UpdatesScylla Summit 2018: Scylla Feature Talks - Scylla Streaming and Repair Updates
Scylla Summit 2018: Scylla Feature Talks - Scylla Streaming and Repair Updates
 
PlayStation and Cassandra Streams (Alexander Filipchik & Dustin Pham, Sony) |...
PlayStation and Cassandra Streams (Alexander Filipchik & Dustin Pham, Sony) |...PlayStation and Cassandra Streams (Alexander Filipchik & Dustin Pham, Sony) |...
PlayStation and Cassandra Streams (Alexander Filipchik & Dustin Pham, Sony) |...
 
kafka
kafkakafka
kafka
 
Scylla Summit 2018: Keeping Your Latency SLAs No Matter What!
Scylla Summit 2018: Keeping Your Latency SLAs No Matter What!Scylla Summit 2018: Keeping Your Latency SLAs No Matter What!
Scylla Summit 2018: Keeping Your Latency SLAs No Matter What!
 
Streaming and Messaging
Streaming and MessagingStreaming and Messaging
Streaming and Messaging
 
Introduction to Amazon Relational Database Service
Introduction to Amazon Relational Database ServiceIntroduction to Amazon Relational Database Service
Introduction to Amazon Relational Database Service
 
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
 
Netflix keystone streaming data pipeline @scale in the cloud-dbtb-2016
Netflix keystone   streaming data pipeline @scale in the cloud-dbtb-2016Netflix keystone   streaming data pipeline @scale in the cloud-dbtb-2016
Netflix keystone streaming data pipeline @scale in the cloud-dbtb-2016
 
Running Cassandra on Amazon EC2
Running Cassandra on Amazon EC2Running Cassandra on Amazon EC2
Running Cassandra on Amazon EC2
 
RDS for MySQL, No BS Operations and Patterns
RDS for MySQL, No BS Operations and PatternsRDS for MySQL, No BS Operations and Patterns
RDS for MySQL, No BS Operations and Patterns
 
Another Day, Another Billion Packets
Another Day, Another Billion PacketsAnother Day, Another Billion Packets
Another Day, Another Billion Packets
 
Deep dive into Apache Kafka consumption
Deep dive into Apache Kafka consumptionDeep dive into Apache Kafka consumption
Deep dive into Apache Kafka consumption
 
Running Cassandra in AWS
Running Cassandra in AWSRunning Cassandra in AWS
Running Cassandra in AWS
 
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
 
Cassandra CLuster Management by Japan Cassandra Community
Cassandra CLuster Management by Japan Cassandra CommunityCassandra CLuster Management by Japan Cassandra Community
Cassandra CLuster Management by Japan Cassandra Community
 
Kafka Reliability - When it absolutely, positively has to be there
Kafka Reliability - When it absolutely, positively has to be thereKafka Reliability - When it absolutely, positively has to be there
Kafka Reliability - When it absolutely, positively has to be there
 
Micro-batching: High-performance writes
Micro-batching: High-performance writesMicro-batching: High-performance writes
Micro-batching: High-performance writes
 
Exactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache KafkaExactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache Kafka
 

Viewers also liked

Apache Hadoop Now Next and Beyond
Apache Hadoop Now Next and BeyondApache Hadoop Now Next and Beyond
Apache Hadoop Now Next and Beyond
DataWorks Summit
 
Cassandra Community Webinar: CMB - An Open Message Bus for the Cloud
Cassandra Community Webinar: CMB - An Open Message Bus for the CloudCassandra Community Webinar: CMB - An Open Message Bus for the Cloud
Cassandra Community Webinar: CMB - An Open Message Bus for the Cloud
DataStax
 
Een andere kijk op Microservices
Een andere kijk op MicroservicesEen andere kijk op Microservices
Een andere kijk op Microservices
Dennis van der Stelt
 
StormMQ Introduction to AMQP, Dublin
StormMQ Introduction to AMQP, DublinStormMQ Introduction to AMQP, Dublin
StormMQ Introduction to AMQP, Dublin
StormMQ
 
Cloud Computing - Everything you wanted to know!
Cloud Computing - Everything you wanted to know!Cloud Computing - Everything you wanted to know!
Cloud Computing - Everything you wanted to know!Debasish Patra
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and Microservices
Rob Davies
 
Introduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupIntroduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users Group
Roy Russo
 
IPaaS: Cloud Integration Analysis
IPaaS: Cloud Integration AnalysisIPaaS: Cloud Integration Analysis
IPaaS: Cloud Integration AnalysisJesus Rodriguez
 
Open Source Versions of Amazon's SNS and SQS.pptx
Open Source Versions of Amazon's SNS and SQS.pptxOpen Source Versions of Amazon's SNS and SQS.pptx
Open Source Versions of Amazon's SNS and SQS.pptx
OpenStack Foundation
 
Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the Cloud
Rob Davies
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
Red Hat Developers
 
Summer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is importantSummer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is importantWSO2
 
iPaas with Fuse Fabric Technology
iPaas with Fuse Fabric TechnologyiPaas with Fuse Fabric Technology
iPaas with Fuse Fabric Technology
Charles Moulliard
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and Docker
Amazon Web Services
 
The art of infrastructure elasticity
The art of infrastructure elasticityThe art of infrastructure elasticity
The art of infrastructure elasticity
Harish Ganesan
 
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec..."Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...
New Relic
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
Kim Clark
 
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...
SnapLogic
 
NATS for Modern Messaging and Microservices
NATS for Modern Messaging and MicroservicesNATS for Modern Messaging and Microservices
NATS for Modern Messaging and Microservices
Apcera
 
Developing real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and KafkaDeveloping real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and Kafka
marius_bogoevici
 

Viewers also liked (20)

Apache Hadoop Now Next and Beyond
Apache Hadoop Now Next and BeyondApache Hadoop Now Next and Beyond
Apache Hadoop Now Next and Beyond
 
Cassandra Community Webinar: CMB - An Open Message Bus for the Cloud
Cassandra Community Webinar: CMB - An Open Message Bus for the CloudCassandra Community Webinar: CMB - An Open Message Bus for the Cloud
Cassandra Community Webinar: CMB - An Open Message Bus for the Cloud
 
Een andere kijk op Microservices
Een andere kijk op MicroservicesEen andere kijk op Microservices
Een andere kijk op Microservices
 
StormMQ Introduction to AMQP, Dublin
StormMQ Introduction to AMQP, DublinStormMQ Introduction to AMQP, Dublin
StormMQ Introduction to AMQP, Dublin
 
Cloud Computing - Everything you wanted to know!
Cloud Computing - Everything you wanted to know!Cloud Computing - Everything you wanted to know!
Cloud Computing - Everything you wanted to know!
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and Microservices
 
Introduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupIntroduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users Group
 
IPaaS: Cloud Integration Analysis
IPaaS: Cloud Integration AnalysisIPaaS: Cloud Integration Analysis
IPaaS: Cloud Integration Analysis
 
Open Source Versions of Amazon's SNS and SQS.pptx
Open Source Versions of Amazon's SNS and SQS.pptxOpen Source Versions of Amazon's SNS and SQS.pptx
Open Source Versions of Amazon's SNS and SQS.pptx
 
Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the Cloud
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
 
Summer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is importantSummer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is important
 
iPaas with Fuse Fabric Technology
iPaas with Fuse Fabric TechnologyiPaas with Fuse Fabric Technology
iPaas with Fuse Fabric Technology
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and Docker
 
The art of infrastructure elasticity
The art of infrastructure elasticityThe art of infrastructure elasticity
The art of infrastructure elasticity
 
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec..."Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...
"Containers, DevOps, Microservices and Kafka: Tools used by our Monolith wrec...
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...
Webinar: iPaaS in the Enterprise - What to Look for in a Cloud Integration Pl...
 
NATS for Modern Messaging and Microservices
NATS for Modern Messaging and MicroservicesNATS for Modern Messaging and Microservices
NATS for Modern Messaging and Microservices
 
Developing real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and KafkaDeveloping real-time data pipelines with Spring and Kafka
Developing real-time data pipelines with Spring and Kafka
 

Similar to C* Summit 2013: CMB: An Open Message Bus for the Cloud by Boris Wolf

A10_CompactTrainingv5.pdf (1).pdf
A10_CompactTrainingv5.pdf (1).pdfA10_CompactTrainingv5.pdf (1).pdf
A10_CompactTrainingv5.pdf (1).pdf
neoalt
 
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
DataStax
 
AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...
Ryousei Takano
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
Amazon Web Services
 
Scalability strategies for cloud based system architecture
Scalability strategies for cloud based system architectureScalability strategies for cloud based system architecture
Scalability strategies for cloud based system architecture
SangJin Kang
 
Netflix at-disney-09-26-2014
Netflix at-disney-09-26-2014Netflix at-disney-09-26-2014
Netflix at-disney-09-26-2014
Monal Daxini
 
Redis Reliability, Performance & Innovation
Redis Reliability, Performance & InnovationRedis Reliability, Performance & Innovation
Redis Reliability, Performance & Innovation
Redis Labs
 
3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...
Timothy McCormick
 
Keystone - ApacheCon 2016
Keystone - ApacheCon 2016Keystone - ApacheCon 2016
Keystone - ApacheCon 2016
Peter Bakas
 
Making communication across boundaries simple with Azure Service Bus
Making communication across boundaries simple with Azure Service BusMaking communication across boundaries simple with Azure Service Bus
Making communication across boundaries simple with Azure Service Bus
Particular Software
 
Automotive network and gateway simulation
Automotive network and gateway simulationAutomotive network and gateway simulation
Automotive network and gateway simulation
Deepak Shankar
 
Scaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptxScaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptx
thaond2
 
Scale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 servicesScale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 services
LinuxCon ContainerCon CloudOpen China
 
Tuning and development with SIP Servlets on Mobicents
Tuning and development with SIP Servlets on MobicentsTuning and development with SIP Servlets on Mobicents
Tuning and development with SIP Servlets on Mobicents
Jean Deruelle
 
Introdução ao data warehouse Amazon Redshift
Introdução ao data warehouse Amazon RedshiftIntrodução ao data warehouse Amazon Redshift
Introdução ao data warehouse Amazon Redshift
Amazon Web Services LATAM
 
CQRS & Queue unlimited
CQRS & Queue unlimitedCQRS & Queue unlimited
CQRS & Queue unlimitedTim Mahy
 
Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...
Fwdays
 
CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performance
Coburn Watson
 
PLNOG16: Usługi w sieciach operatorskich, Marcin Aronowski
PLNOG16: Usługi w sieciach operatorskich, Marcin AronowskiPLNOG16: Usługi w sieciach operatorskich, Marcin Aronowski
PLNOG16: Usługi w sieciach operatorskich, Marcin Aronowski
PROIDEA
 
Big Data Streams Architectures. Why? What? How?
Big Data Streams Architectures. Why? What? How?Big Data Streams Architectures. Why? What? How?
Big Data Streams Architectures. Why? What? How?
Anton Nazaruk
 

Similar to C* Summit 2013: CMB: An Open Message Bus for the Cloud by Boris Wolf (20)

A10_CompactTrainingv5.pdf (1).pdf
A10_CompactTrainingv5.pdf (1).pdfA10_CompactTrainingv5.pdf (1).pdf
A10_CompactTrainingv5.pdf (1).pdf
 
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
 
AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 
Scalability strategies for cloud based system architecture
Scalability strategies for cloud based system architectureScalability strategies for cloud based system architecture
Scalability strategies for cloud based system architecture
 
Netflix at-disney-09-26-2014
Netflix at-disney-09-26-2014Netflix at-disney-09-26-2014
Netflix at-disney-09-26-2014
 
Redis Reliability, Performance & Innovation
Redis Reliability, Performance & InnovationRedis Reliability, Performance & Innovation
Redis Reliability, Performance & Innovation
 
3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...
 
Keystone - ApacheCon 2016
Keystone - ApacheCon 2016Keystone - ApacheCon 2016
Keystone - ApacheCon 2016
 
Making communication across boundaries simple with Azure Service Bus
Making communication across boundaries simple with Azure Service BusMaking communication across boundaries simple with Azure Service Bus
Making communication across boundaries simple with Azure Service Bus
 
Automotive network and gateway simulation
Automotive network and gateway simulationAutomotive network and gateway simulation
Automotive network and gateway simulation
 
Scaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptxScaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptx
 
Scale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 servicesScale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 services
 
Tuning and development with SIP Servlets on Mobicents
Tuning and development with SIP Servlets on MobicentsTuning and development with SIP Servlets on Mobicents
Tuning and development with SIP Servlets on Mobicents
 
Introdução ao data warehouse Amazon Redshift
Introdução ao data warehouse Amazon RedshiftIntrodução ao data warehouse Amazon Redshift
Introdução ao data warehouse Amazon Redshift
 
CQRS & Queue unlimited
CQRS & Queue unlimitedCQRS & Queue unlimited
CQRS & Queue unlimited
 
Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...
 
CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performance
 
PLNOG16: Usługi w sieciach operatorskich, Marcin Aronowski
PLNOG16: Usługi w sieciach operatorskich, Marcin AronowskiPLNOG16: Usługi w sieciach operatorskich, Marcin Aronowski
PLNOG16: Usługi w sieciach operatorskich, Marcin Aronowski
 
Big Data Streams Architectures. Why? What? How?
Big Data Streams Architectures. Why? What? How?Big Data Streams Architectures. Why? What? How?
Big Data Streams Architectures. Why? What? How?
 

More from 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 craft
DataStax Academy
 
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseIntroduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph Database
DataStax 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 Cassandra
DataStax Academy
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart Labs
DataStax Academy
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data Modeling
DataStax 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 stack
DataStax Academy
 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache Cassandra
DataStax Academy
 
Coursera Cassandra Driver
Coursera Cassandra DriverCoursera Cassandra Driver
Coursera Cassandra Driver
DataStax Academy
 
Production Ready Cassandra
Production Ready CassandraProduction Ready Cassandra
Production Ready Cassandra
DataStax 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 & Python
DataStax 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 1
DataStax 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 2
DataStax Academy
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First Cluster
DataStax Academy
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with Dse
DataStax 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 Cassandra
DataStax Academy
 
Cassandra Core Concepts
Cassandra Core ConceptsCassandra Core Concepts
Cassandra Core Concepts
DataStax 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 Enterprise
DataStax Academy
 
Bad Habits Die Hard
Bad Habits Die Hard Bad Habits Die Hard
Bad Habits Die Hard
DataStax Academy
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache Cassandra
DataStax Academy
 

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

Recently uploaded

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
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
 
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
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
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
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
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
 
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
 
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
 

Recently uploaded (20)

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
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
 
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
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
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
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
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...
 
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
 
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...
 

C* Summit 2013: CMB: An Open Message Bus for the Cloud by Boris Wolf

  • 1. CMB – A Message Bus for the Cloud
  • 2. CMB – A Message Bus for the Cloud CQS – Queuing Service CNS – Topic based Pub Sub Service
  • 3. Why did we build our own? •  General purpose message bus to replace project driven one-off solutions •  Smooth data center failover, maybe even “active-active” queues •  Must scale to millions of queues and 1000s of messages/sec (for example 1 queue per STB) •  Tight latency requirements (“10ms response time 95th pct”) •  Evaluated other options to arrive at AWS SQS/SNS
  • 4. AWS SQS Primer “Simple Queuing Service” •  Focus on guaranteed delivery •  Best effort on orderly delivery, duplicates •  Few simple core APIs: SendMessage() ReceiveMessage() DeleteMessage() •  Do not trust message recipients
  • 5. Advantages of adopting an API If you do it on your own: •  API design typically biased towards first use case •  Almost guaranteed: You won’t get it right the first time (iterations) •  Difficult for new users to adopt: Documentation, tools, community,…
  • 6. Why did we build our own? AWS  SQS   Guaranteed  Delivery   +   Simple,  Robust  API   +   Scalability   +   Ac;ve-­‐Ac;ve   ?   DC  Failover   ?   Latency  &  Throughput   ?   Limita;ons  (Msg  Size,  #  Ar;facts,  …)   ?  
  • 7. “Build a horizontally scalable queuing service on top of Cassandra (and Redis) which is API compatible with AWS SQS / SNS API”
  • 8. CQS over Cassandra and Redis Cassandra •  Cross-DC persistence and replication •  Proven horizontal scalability Redis •  Meet latency requirements •  Help with best effort ordering •  Handle Visibility Timeout (VTO)
  • 9. Cassandra Data Modeling How to represent queued messages in Cassandra? •  Single Column Queue •  Single Row Queue •  Multi-Row Queue
  • 13. CQS Data Flow Example 1.  SendMessage(MSG1) 2.  SendMessage(MSG2) 3.  SendMessage(MSG3) 4.  MSG1 = ReceiveMessage() 5.  DeleteMessage(MSG1)
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. CQS Architecture Recap Cassandra Persistence Layer •  Messages sharded across 100 rows per queue •  Avoid wide rows (> 500K) •  Minimize churn (Tombstones) •  Distribute queue among Cassandra nodes Redis Caching Layer •  To meet latency requirements •  Payload cache (kicks in after first miss, pre-load next 10k) •  Improve FIFOness by storing Msg IDs in Redis List •  Handle message visibility entirely in Redis (Hashtable)
  • 21. CQS Key Cassandra Features Persistence and failover •  Cross-DC replication in combination with Local Quorum Reads/Writes (tunable consistency) Millions of queues, spiky traffic patterns •  Massive horizontal scalability Message order (FIFOness) / future dated messages •  Wide rows, composite column keys / TimeUUID and column sort order Message retention period (expiration) •  TTL Fast lookup of static metadata (Queues, Users etc.) •  Row Cache, Secondary Indexes
  • 22. CQS Scalability •  Send(), Receive() and Delete() scale with Cassandra Ring, API Servers (stateless) and Redis Shards •  Are constant time operations •  Queues not sharded across Redis servers!
  • 23. CQS Availability •  Depends on availability of Cassandra •  Service functions without Redis!
  • 25. AWS SNS API “Simple Notification Service” •  Topic based Publish/Subscribe Service •  Supported protocols: HTTP/CQS/SQS •  Few simple core APIs CreateTopic() / DeleteTopic() Subscribe() / Unsubscribe() ConfirmSubscription() Publish() •  Do not trust message recipients (redelivery policy)
  • 26. CNS Data Flow Example •  Single operation: Publish message MSG1 to a topic T with four Subscribers S1, S2, S5, S6. •  S1, S2 are HTTP endpoints •  S5, S6 are CQS queues
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. CNS Architecture Recap •  CQS Queue preserves messages when Publish Workers are down or overloaded •  CQS Visibility Timeout takes care of guaranteed delivery •  Retry policy improves guaranteed delivery for temporarily unavailable endpoints (http) •  Publish Workers hardened for rogue endpoints (failing endpoints, slow endpoints, …)
  • 34. Differences SQS/SNS and CQS/CNS Goal: Full API compatibility Current state: •  All APIs implemented, most parameters supported •  Can use AWS Java SDK and others Limitations: •  AWS4 signatures not supported (V1 and V2 ok) •  SMS endpoints not supported, limited email support Enhancements: •  Additional APIs for monitoring and management •  Unlimited number of queues, topics and subscriptions •  Adjustable message size and other parameters (MSG <= 64KB, LP <= 20 sec, DS <= 900 sec, RP, …)
  • 35. CMB Ready for Production Use? •  Code of CMB Core is stable •  Extensive testing done (including throughput scalability testing) •  In use at Comcast (Sports, DVR, …)
  • 36. Testing Goals •  Functional testing (unit tests, good code coverage) •  Stress testing (simulate Redis outage, data center failover) •  Endurance testing •  Load testing: Verify linear horizontal scalability (CQS / CNS throughput scalability)
  • 37. CQS Throughput Scalability •  Throughput as a function of Cassandra Ring size •  Increase load until throughput (msg/sec) reaches a maximum •  Increase ring size and re-test •  Ensure sufficient API and Redis capacity to support largest ring •  Deployment: 10 API Servers, 5 Redis Shards, 4-16 Node Cassandra Ring
  • 38.
  • 39.
  • 40. CQS Throughput Scalability #  Load  Gen   #  API  Servers   #  Redis  Shards   Ring  Size   API  /  Sec   P99   5   10   5   4   2832   <=  100  ms   5   10   5   8   6072   <=  100  ms   5   10   5   12   9472   <=  100  ms   6   12   6   16   11667   <=  100  ms   8   15   7   20   13514   <=  100  ms   8   15   7   24   15365   <=  100  ms  
  • 41. 0   2000   4000   6000   8000   10000   12000   14000   16000   18000   4   8   12   16   20   24   API/sec   Ring  Size  
  • 42. CNS Throughput Scalability •  Most important metric: End-to-end latency •  Fixed number of subscribers, gradually increase #msg/sec published until system is “overwhelmed” •  Increase number of Publish Workers and re-test •  Deployment: 8 node Cassandra Ring, 2 API Servers, 2 Redis Shards, 3-6 Publish Workers •  Test setup: Single topic with 100 HTTP subscribers, 10 min test duration
  • 43. CNS Throughput Scalability 3 Publish Workers #PUB/ SEC   #MSG/ SEC   AVG(LAT)     API     AVG (RT)     API     P95(RT)     API   AVG(CQ S)     API   P95(CQ S)     PROD   AVG(RT )     PROD   P95(RT)     PROD   AVG(CQ S)     PROD   P95(CQS)     CONS   AVG(RT)     CONS   P95(RT)     CONS   AVG(CQS)     CONS   P95(CQS )     HTTP   AVG(RT)     HTTP   P95(CQS )     5   500   198   21   44   10   26   77   150   77   155   47   96   38   85   12   18   10   1000   177   15   30   8   16   68   119   68   118   39   70   31   59   12   17   20   2000   160   16   29   9   17   69   120   69   120   40   69   31   59   9   16   40   4000   209   18   37   10   22   78   138   78   139   41   74   32   62   11   18   80   8000   75656   28   61   14   27   237   1020   237   1020   143   790   131   770   14   21  
  • 44. CNS Throughput Scalability 6 Publish Workers #PUB/ SEC   #MSG/SEC   AVG(LAT)     API     AVG (RT)     API     P95(RT)     API   AVG(CQ S)     API   P95(CQ S)     PROD   AVG(RT )     PROD   P95(RT)     PROD   AVG(CQ S)     PROD   P95(CQS)     CONS   AVG(RT)     CONS   P95(RT)     CONS   AVG(CQS)     CONS   P95(CQS )     HTTP   AVG(RT)     HTTP   P95(CQS )     5   500   247   37   117   19   66   141   290   139   290   77   200   57   160   18   34   10   1000   226   41   130   21   79   163   380   162   370   79   200   58   160   17   39   20   2000   199   37   118   20   74   133   280   133   280   68   180   50   150   11   21   40   4000   225   45   140   25   110   148   320   148   320   76   210   53   170   18   25   80   8000   267   48   126   25   80   149   300   149   300   77   180   58   150   22   38   160   16000   145135   76   180   41   120   228   460   228   460   115   280   97   250   28   70  
  • 45. 0 200 400 600 800 1000 1200 500 1000 2000 4000 8000 Latency(ms) Throughput (Msgs/Sec) 6 workers 3 workers CNS  Throughput  Scalability  
  • 46. Use Case: X1 Sports App
  • 47. Use Case: X1 Sports App
  • 48. Use Case: X1 Sports App
  • 49. Moving Forward •  Follow SNS / SQS APIs •  More load and stress testing •  Ease of deployment and scale up •  More in-house production deployments (currently isolated by application) •  CQS as a Service
  • 52. CNS Endurance Test Single  topic  with  5  HTTP  subscribers,  65  msg/sec  published   14  mio  messages  published  over  12hrs