SlideShare a Scribd company logo
Raft in RabbitMQ
Karl Nilsson @kjnilsson
Michael Klishin @michaelklishin
1
Disclaimer
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Safe Harbor Statement
The following is intended to outline the general direction of Pivotal's offerings. It is
intended for information purposes only and may not be incorporated into any
contract. Any information regarding pre-release of Pivotal offerings, future updates
or other planned modifications is subject to ongoing evaluation by Pivotal and is
subject to change. This information is provided without warranty or any kind, express
or implied, and is not a commitment to deliver any material, code, or functionality,
and should not be relied upon in making purchasing decisions regarding Pivotal's
offerings. These purchasing decisions should only be based on features currently
available. The development, release, and timing of any features or functionality
described for Pivotal's offerings in this presentation remain at the sole discretion of
Pivotal. Pivotal has no obligation to update forward looking information in this
presentation.
3
What is RabbitMQ?
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What is RabbitMQ
• Messaging broker
5
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What is RabbitMQ
6
Publisher Consumer
Consumer
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What is RabbitMQ
• Messaging broker
• Multi-protocol (AMQP 0-9-1, AMQP 1.0, MQTT, STOMP, …)
• Started in 2006
• Broad ecosystem including Spring support
• Learn more at rabbitmq.com
7
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ nodes can form clusters
• Balance load (connections, traffic, I/O, …) between nodes
• Replicate queue contents
• Tolerate node failures
8
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Sections
1. High Availability in RabbitMQ
2. Raft overview
3. RabbitMQ and Raft
4. Raft challenges
5. Implementation
9
Where We are Today
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ High Availability
• Replication of data and operations
• Message replication is done at the
queue level
• Called “Queue Mirroring”
• In a cluster of RabbitMQ nodes a
queue can have a mirror on one or
more nodes
• Provides fail-over and redundancy
11
Rabbit 1
Q1
Rabbit 2
Q1
Rabbit 3
Q1
Master Queue
Mirror Queues
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ HA story isn’t perfect!
12
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ Queue Mirroring
• Internally uses a component called “Guaranteed Multicast” to replicate queue
operations and message data
• Provides replication and total ordering of operations
• Ordering matters:
							[ENQ	+	ENQ	+	DEQ]	!=	[DEQ	+	ENQ	+	ENQ]	
13
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Chain replication
Chain Replication ensures strong consistency and good availability guarantees
in “fail-stop” scenarios.
Chain Replication for Supporting High Throughput and Availability (Robbert
van Renesse, Fred B. Schneider)
http://www.cs.cornell.edu/home/rvr/papers/OSDI04.pdf
14
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Chain replication
15
HEAD TAIL
READWRITE
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ Mirrored Queue ring
16
MASTER MIRROR MIRROR MIRROR MIRROR
DELIVERPUBLISH
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ Queue Mirror failure detection
17
MASTER
MIRROR
MIRROR
MIRROR
MIRRORPUBLISH
Needs timely fault detection
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ Mirrored Queue reforms ring
18
MASTER
MIRROR
MIRROR
MIRROR
MIRRORPUBLISH DELIVER
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ Queue reforms ring
19
MASTER
MIRROR
MIRROR
MIRROR
MIRRORPUBLISH DELIVER
I was only gone a minute. Can
I re-join?
It’s complicated…
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ Queue mirror sync
20
MASTER
MIRROR
MIRROR
MIRROR
MIRRORPUBLISH DELIVER
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ documentation wisdom
21
This topology [Ring] through relatively
cheap in queues and connections, is
rather fragile
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 22
[DO AS WE SAY NOT AS WE DO]
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ Queue Mirroring
• Works well most of the time
• Requires good failure detection
• Membership changes are expensive
(require queue sync)
• Master election algorithm is
informally specified (at best)
23
We can do better
Road to Raft
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What do we need?
• Strong consistency guarantees
• Total order of operations
• Predictable behaviour in response to failure events (well-defined recovery
procedure)
• Safe queue master “fail-over”
• Parallel replication
• Avoid reinventing another distsys wheel
25
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Options
• Chain Replication
• Paxos
• Viewstamped Replication
• Raft
26
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Raft
• A group of algorithms for reaching consensus in a distributed system
• Similar problem space to RabbitMQ queue mirroring
• Oriented towards implementers
• Proven
• Multiple implementations
• Industry use
• etcd
• Consul
• CockroachDB
• TLA+ specification
• Requires no external dependencies
27
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Raft provides
• A state machine log abstraction
• Fits many domains
• Leader-follower model
• State machine log replication
• Consistency-oriented, availability
characteristics covered later
• Total order of operations
• Well-defined algorithms important for implementers
• Leader election
• Safe cluster membership changes
• Durable storage expectations
• Recovery
• Replay log to restore state
• Snapshotting
28
Raft
FOLLOWER
LEADER
FOLLOWER
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Raft protocol: replicate entry
29
FOLLOWER
LEADER
FOLLOWER
ENQ ‘A’
LOG
1 ENQ ‘A’
CommitIndex: 0
State = []
AppendEntriesRpc { Entries = [1, ENQ ‘A’]
AppendEntriesRpc { Entries = [1, ENQ ‘A’]
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Raft protocol: reply + commit
30
FOLLOWER
LEADER
FOLLOWER
OK
LOG
1 ENQ ‘A’
CommitIndex: 0
State = []
CommitIndex: 1
State = [ENQ ‘A’]
AppendEntriesReply { Success = true }
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
A raft
Learn more at raft.github.io
31
How Does Raft Compare?
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Taking action
What to do when detecting a (potential) failure?
A. Nothing
• most reliable / least useful
B. Try to “fix stuff”
• evict down nodes, reform topology
• communicate changes to other nodes
C. The minimum required
• regain / retain availability and consistency
33
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Raft vs Queue Mirroring failure handling
Raft
34
Queue mirroring
Follower
Leader
Follower
Follower
Follower
Mirror
Master
Mirror
Mirror
Mirror
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Raft vs Queue Mirroring leader failure
Raft
35
Queue mirroring
Follower
Leader
Follower
Follower
Follower
Mirror
Master
Mirror
Mirror
Mirror
Should I
take
Sure - your log
is up to date.
Go ahead.
Why
I’m the
oldest -
I’ll be
Master!
Ok…
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
In response to (potential) failure:
Raft either:
• Does nothing
• Does the minimum required
• ensures consistency
• regains availability
36
RabbitMQ queue mirroring:
• Must always do something
Adopting Raft
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Raft in RabbitMQ
• Can be adopted in multiple areas incrementally
• Area of focus: queue mirroring
• Coordination, leader election
• Cluster federation
• Shovel
• Delayed message exchange
• Message store data replication
• Messages
• Distributed data and state storage
• Internal metadata store (vhosts, users, permissions, queues, …)
38
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Raft in RabbitMQ
• More predictable recovery from node failures
• Improved serializability and linearizability characteristics
• Better scalability of mirrored queues [w.r.t. the number of nodes]
• Write-ahead Log
• Multi-DC support
39
Down the Rabbit Hole
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Message store replication
• RabbitMQ allows for complex routing of messages
• One message can be routed to many queues (fan-out)
• May consumers may receive the same message
• Consumers may be connected to any RabbitMQ node
• Queue master may exist on any RabbitMQ node
• The queue master delivers messages to consumers
• Sub-optimal use of network
• The same message may be sent over the same socket multiple times
41
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Message store replication
• Replicate message bodies independently of queue operations
• All bodies are written and read locally
• Queues only replicate operations + pointers to message data
• Many consumers can read the same message from a local store
42
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Raft challenges
• The cost of consensus
• Raft requires “stable storage” (fsync)
• Latency
• Reduced availability
• Requires a quorum
• Cluster formation
• Seeding
• RabbitMQ internal concern
• Single leader
• Scalability
43
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Operational changes
• Uneven cluster sizes required / recommended
• 3 nodes can tolerate 1 failure
• 5 nodes can tolerate 2 failures, and so on…
44
Announcement time
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Ra: a Raft library
• By Team RabbitMQ
• Soon to be open sourced
• ASL2 / MPL1.1 licensed
• Generically usable, not tied to
RabbitMQ
• Tailored for RabbitMQ needs
• Very much a WIP (breaking API
changes are likely)
• https://github.com/rabbitmq/ra
46
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Ra: implementation
• Raft cluster per queue
• Many queues = many Raft clusters
• Each node writing to it’s own log file
• Thousands of concurrent fsync operations
• A no-go - we tried it
• Raft is chatty
• High background network usage when idle
47
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Ra: implementation
• Shared Write Ahead Log (WAL)
• fsync in batches
• flushed to raft node specific storage periodically
• Storage engine
• Similar to LSM tree and "append-oriented" stores (LevelDB, RocksDB)
• Compaction is radically simpler in our case
• Per RabbitMQ node “heartbeat” process
• Reduce network background usage
48
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Ra: implementation testing
• Unit & integration testing
• Property-based testing 🤖
• Correctness is essential
• Deployment testing (BOSH)
• TLA+ spec for log implementation 🤓
49
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Summary
• RabbitMQ queue mirroring has fundamental problems
• Raft covers a very similar problem space
• New design promises lots of improvements 😊
• Implementing Raft is non-trivial
• github.com/rabbitmq/ra
• We are still learning
50
Announcement time
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
RabbitMQ 3.7
• More automation-friendly
• Easier to use config format
• Pluggable peer discovery
• Distributed management plugin
• Per-vhost limits
• Operator policies
• Message store multi-tenancy
• Distributed via Bintray, Package Cloud and GitHub (not rabbitmq.com)
• Learn more at rabbitmq.com/changelog.html.
52
Thank you
@kjnilsson
@michaelklishin
rabbitmq-users (a Google group)
53
#springone@s1p

More Related Content

What's hot

Sports Quiz at Quizzers Anonymous 2014 (prelims)
Sports Quiz at Quizzers Anonymous 2014 (prelims)Sports Quiz at Quizzers Anonymous 2014 (prelims)
Sports Quiz at Quizzers Anonymous 2014 (prelims)
Kiran Gowda
 
MBSE with Arcadia method step-by-step Physical Architecture.pdf
MBSE with Arcadia method step-by-step Physical Architecture.pdfMBSE with Arcadia method step-by-step Physical Architecture.pdf
MBSE with Arcadia method step-by-step Physical Architecture.pdf
Helder Castro
 
QC101: Into the Mythoverse.pptx
QC101: Into the Mythoverse.pptxQC101: Into the Mythoverse.pptx
QC101: Into the Mythoverse.pptx
Quiz Club, Indian Institute of Technology, Patna
 
IIMB_Vista_CorpQuiz2013_Finals
IIMB_Vista_CorpQuiz2013_FinalsIIMB_Vista_CorpQuiz2013_Finals
IIMB_Vista_CorpQuiz2013_Finals
consultnexus
 
Fahrenheit-42: Movies, Etymology, Literature and India quiz Prelims
Fahrenheit-42: Movies, Etymology, Literature and India quiz PrelimsFahrenheit-42: Movies, Etymology, Literature and India quiz Prelims
Fahrenheit-42: Movies, Etymology, Literature and India quiz Prelims
Delhi-42 The DTU Quiz Club
 
PowerShell for Cyber Warriors - Bsides Knoxville 2016
PowerShell for Cyber Warriors - Bsides Knoxville 2016PowerShell for Cyber Warriors - Bsides Knoxville 2016
PowerShell for Cyber Warriors - Bsides Knoxville 2016
Russel Van Tuyl
 
Saarang 2015 Buzzer Quiz (Prelims+Finals)
Saarang 2015 Buzzer Quiz (Prelims+Finals)Saarang 2015 Buzzer Quiz (Prelims+Finals)
Saarang 2015 Buzzer Quiz (Prelims+Finals)
Nithin Ramesan
 
Quiz cwc
Quiz  cwcQuiz  cwc
Tech-Biz Quiz Grand Finale
Tech-Biz Quiz Grand FinaleTech-Biz Quiz Grand Finale
Tech-Biz Quiz Grand Finale
Somnath Chanda
 
Open day - Science.pptx
Open day - Science.pptxOpen day - Science.pptx
Open day - Science.pptx
Arul Mani
 
Run-up to Antaragni Sports Quiz
Run-up to Antaragni Sports QuizRun-up to Antaragni Sports Quiz
Run-up to Antaragni Sports Quiz
Quiz Club IIT Kanpur
 
(Prelims) Music, Movies and Sports Quiz - Magajastro 2014
(Prelims) Music, Movies and Sports Quiz - Magajastro 2014(Prelims) Music, Movies and Sports Quiz - Magajastro 2014
(Prelims) Music, Movies and Sports Quiz - Magajastro 2014
Debanjan Bose
 
Score Some More - Sports Quiz 2022 | QM: Animesh Jajoo | BITS Goa Quiz Club x...
Score Some More - Sports Quiz 2022 | QM: Animesh Jajoo | BITS Goa Quiz Club x...Score Some More - Sports Quiz 2022 | QM: Animesh Jajoo | BITS Goa Quiz Club x...
Score Some More - Sports Quiz 2022 | QM: Animesh Jajoo | BITS Goa Quiz Club x...
BITS Goa Quiz Club
 
The General quiz 2018 prelims answers (November)
The General quiz 2018  prelims answers (November)The General quiz 2018  prelims answers (November)
The General quiz 2018 prelims answers (November)
Anand K N
 
Intaglio quiz quizzical finals
Intaglio quiz  quizzical finalsIntaglio quiz  quizzical finals
Intaglio quiz quizzical finals
IIM Calcutta Quiz Club
 
Kriti business Quiz 2017
Kriti business Quiz 2017Kriti business Quiz 2017
Kriti business Quiz 2017
Quiz Club IIT Guwahati
 
ASKQANCE 2012 Sports Quiz finals_for upload
ASKQANCE 2012 Sports Quiz finals_for uploadASKQANCE 2012 Sports Quiz finals_for upload
ASKQANCE 2012 Sports Quiz finals_for upload
Venkatesh Srinivasan
 
Litstock '18 Football Quiz - Finals
Litstock '18 Football Quiz - FinalsLitstock '18 Football Quiz - Finals
Litstock '18 Football Quiz - Finals
Manipal Institute of Technology
 

What's hot (20)

Sports Quiz at Quizzers Anonymous 2014 (prelims)
Sports Quiz at Quizzers Anonymous 2014 (prelims)Sports Quiz at Quizzers Anonymous 2014 (prelims)
Sports Quiz at Quizzers Anonymous 2014 (prelims)
 
MBSE with Arcadia method step-by-step Physical Architecture.pdf
MBSE with Arcadia method step-by-step Physical Architecture.pdfMBSE with Arcadia method step-by-step Physical Architecture.pdf
MBSE with Arcadia method step-by-step Physical Architecture.pdf
 
QC101: Into the Mythoverse.pptx
QC101: Into the Mythoverse.pptxQC101: Into the Mythoverse.pptx
QC101: Into the Mythoverse.pptx
 
IIMB_Vista_CorpQuiz2013_Finals
IIMB_Vista_CorpQuiz2013_FinalsIIMB_Vista_CorpQuiz2013_Finals
IIMB_Vista_CorpQuiz2013_Finals
 
Fahrenheit-42: Movies, Etymology, Literature and India quiz Prelims
Fahrenheit-42: Movies, Etymology, Literature and India quiz PrelimsFahrenheit-42: Movies, Etymology, Literature and India quiz Prelims
Fahrenheit-42: Movies, Etymology, Literature and India quiz Prelims
 
Fachcha Quiz 2013 Prelims
Fachcha Quiz 2013 PrelimsFachcha Quiz 2013 Prelims
Fachcha Quiz 2013 Prelims
 
PowerShell for Cyber Warriors - Bsides Knoxville 2016
PowerShell for Cyber Warriors - Bsides Knoxville 2016PowerShell for Cyber Warriors - Bsides Knoxville 2016
PowerShell for Cyber Warriors - Bsides Knoxville 2016
 
Saarang 2015 Buzzer Quiz (Prelims+Finals)
Saarang 2015 Buzzer Quiz (Prelims+Finals)Saarang 2015 Buzzer Quiz (Prelims+Finals)
Saarang 2015 Buzzer Quiz (Prelims+Finals)
 
Quiz cwc
Quiz  cwcQuiz  cwc
Quiz cwc
 
Tech-Biz Quiz Grand Finale
Tech-Biz Quiz Grand FinaleTech-Biz Quiz Grand Finale
Tech-Biz Quiz Grand Finale
 
Open day - Science.pptx
Open day - Science.pptxOpen day - Science.pptx
Open day - Science.pptx
 
Run-up to Antaragni Sports Quiz
Run-up to Antaragni Sports QuizRun-up to Antaragni Sports Quiz
Run-up to Antaragni Sports Quiz
 
(Prelims) Music, Movies and Sports Quiz - Magajastro 2014
(Prelims) Music, Movies and Sports Quiz - Magajastro 2014(Prelims) Music, Movies and Sports Quiz - Magajastro 2014
(Prelims) Music, Movies and Sports Quiz - Magajastro 2014
 
Score Some More - Sports Quiz 2022 | QM: Animesh Jajoo | BITS Goa Quiz Club x...
Score Some More - Sports Quiz 2022 | QM: Animesh Jajoo | BITS Goa Quiz Club x...Score Some More - Sports Quiz 2022 | QM: Animesh Jajoo | BITS Goa Quiz Club x...
Score Some More - Sports Quiz 2022 | QM: Animesh Jajoo | BITS Goa Quiz Club x...
 
The General quiz 2018 prelims answers (November)
The General quiz 2018  prelims answers (November)The General quiz 2018  prelims answers (November)
The General quiz 2018 prelims answers (November)
 
Intaglio quiz quizzical finals
Intaglio quiz  quizzical finalsIntaglio quiz  quizzical finals
Intaglio quiz quizzical finals
 
Kriti business Quiz 2017
Kriti business Quiz 2017Kriti business Quiz 2017
Kriti business Quiz 2017
 
SPENT Quiz 2013 Finals
SPENT Quiz 2013 FinalsSPENT Quiz 2013 Finals
SPENT Quiz 2013 Finals
 
ASKQANCE 2012 Sports Quiz finals_for upload
ASKQANCE 2012 Sports Quiz finals_for uploadASKQANCE 2012 Sports Quiz finals_for upload
ASKQANCE 2012 Sports Quiz finals_for upload
 
Litstock '18 Football Quiz - Finals
Litstock '18 Football Quiz - FinalsLitstock '18 Football Quiz - Finals
Litstock '18 Football Quiz - Finals
 

Similar to Implementing Raft in RabbitMQ

Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with Istio
VMware Tanzu
 
Heavyweights: Tipping the Scales with Very Large Foundations
Heavyweights: Tipping the Scales with Very Large FoundationsHeavyweights: Tipping the Scales with Very Large Foundations
Heavyweights: Tipping the Scales with Very Large Foundations
VMware Tanzu
 
Caching for Microservives - Introduction to Pivotal Cloud Cache
Caching for Microservives - Introduction to Pivotal Cloud CacheCaching for Microservives - Introduction to Pivotal Cloud Cache
Caching for Microservives - Introduction to Pivotal Cloud Cache
VMware Tanzu
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015
Daniel Woods
 
Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud Services
VMware Tanzu
 
It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?
VMware Tanzu
 
Lattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsLattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring Applications
Matt Stine
 
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
VMware Tanzu
 
Zuul @ Netflix SpringOne Platform
Zuul @ Netflix SpringOne PlatformZuul @ Netflix SpringOne Platform
Zuul @ Netflix SpringOne Platform
Mikey Cohen - Hiring Amazing Engineers
 
Data Migration at Scale with RabbitMQ and Spring Integration
Data Migration at Scale with RabbitMQ and Spring IntegrationData Migration at Scale with RabbitMQ and Spring Integration
Data Migration at Scale with RabbitMQ and Spring Integration
Alvaro Videla
 
Building .NET Microservices
Building .NET MicroservicesBuilding .NET Microservices
Building .NET Microservices
VMware Tanzu
 
S1P: Spring Cloud on PKS
S1P: Spring Cloud on PKSS1P: Spring Cloud on PKS
S1P: Spring Cloud on PKS
Mauricio (Salaboy) Salatino
 
P to V to C: The Value of Bringing “Everything” to Containers
P to V to C: The Value of Bringing “Everything” to ContainersP to V to C: The Value of Bringing “Everything” to Containers
P to V to C: The Value of Bringing “Everything” to Containers
VMware Tanzu
 
Core Spring + Reactive 김민석
Core Spring + Reactive  김민석Core Spring + Reactive  김민석
Core Spring + Reactive 김민석
VMware Tanzu Korea
 
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
VMware Tanzu
 
Modern messaging with RabbitMQ, Spring Cloud and Reactor
Modern messaging with RabbitMQ, Spring Cloud and ReactorModern messaging with RabbitMQ, Spring Cloud and Reactor
Modern messaging with RabbitMQ, Spring Cloud and Reactor
acogoluegnes
 
Automated PCF Upgrades with Concourse
Automated PCF Upgrades with ConcourseAutomated PCF Upgrades with Concourse
Automated PCF Upgrades with Concourse
VMware Tanzu
 
riffing on Knative - Scott Andrews
riffing on Knative - Scott Andrewsriffing on Knative - Scott Andrews
riffing on Knative - Scott Andrews
VMware Tanzu
 
Crossing the CI/CD/DevOps Chasm
Crossing the CI/CD/DevOps ChasmCrossing the CI/CD/DevOps Chasm
Crossing the CI/CD/DevOps Chasm
VMware Tanzu
 
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
cornelia davis
 

Similar to Implementing Raft in RabbitMQ (20)

Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with Istio
 
Heavyweights: Tipping the Scales with Very Large Foundations
Heavyweights: Tipping the Scales with Very Large FoundationsHeavyweights: Tipping the Scales with Very Large Foundations
Heavyweights: Tipping the Scales with Very Large Foundations
 
Caching for Microservives - Introduction to Pivotal Cloud Cache
Caching for Microservives - Introduction to Pivotal Cloud CacheCaching for Microservives - Introduction to Pivotal Cloud Cache
Caching for Microservives - Introduction to Pivotal Cloud Cache
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015
 
Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud Services
 
It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?
 
Lattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsLattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring Applications
 
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
 
Zuul @ Netflix SpringOne Platform
Zuul @ Netflix SpringOne PlatformZuul @ Netflix SpringOne Platform
Zuul @ Netflix SpringOne Platform
 
Data Migration at Scale with RabbitMQ and Spring Integration
Data Migration at Scale with RabbitMQ and Spring IntegrationData Migration at Scale with RabbitMQ and Spring Integration
Data Migration at Scale with RabbitMQ and Spring Integration
 
Building .NET Microservices
Building .NET MicroservicesBuilding .NET Microservices
Building .NET Microservices
 
S1P: Spring Cloud on PKS
S1P: Spring Cloud on PKSS1P: Spring Cloud on PKS
S1P: Spring Cloud on PKS
 
P to V to C: The Value of Bringing “Everything” to Containers
P to V to C: The Value of Bringing “Everything” to ContainersP to V to C: The Value of Bringing “Everything” to Containers
P to V to C: The Value of Bringing “Everything” to Containers
 
Core Spring + Reactive 김민석
Core Spring + Reactive  김민석Core Spring + Reactive  김민석
Core Spring + Reactive 김민석
 
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
 
Modern messaging with RabbitMQ, Spring Cloud and Reactor
Modern messaging with RabbitMQ, Spring Cloud and ReactorModern messaging with RabbitMQ, Spring Cloud and Reactor
Modern messaging with RabbitMQ, Spring Cloud and Reactor
 
Automated PCF Upgrades with Concourse
Automated PCF Upgrades with ConcourseAutomated PCF Upgrades with Concourse
Automated PCF Upgrades with Concourse
 
riffing on Knative - Scott Andrews
riffing on Knative - Scott Andrewsriffing on Knative - Scott Andrews
riffing on Knative - Scott Andrews
 
Crossing the CI/CD/DevOps Chasm
Crossing the CI/CD/DevOps ChasmCrossing the CI/CD/DevOps Chasm
Crossing the CI/CD/DevOps Chasm
 
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
 

More from VMware Tanzu

Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
VMware Tanzu
 
What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
VMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
VMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
VMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
VMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
VMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
VMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
VMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
VMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
VMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
VMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
VMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
VMware Tanzu
 

More from VMware Tanzu (20)

Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
 
What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 

Recently uploaded

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
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
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 

Recently uploaded (20)

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
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
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 

Implementing Raft in RabbitMQ

  • 1. Raft in RabbitMQ Karl Nilsson @kjnilsson Michael Klishin @michaelklishin 1
  • 3. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Safe Harbor Statement The following is intended to outline the general direction of Pivotal's offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation. 3
  • 5. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What is RabbitMQ • Messaging broker 5
  • 6. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What is RabbitMQ 6 Publisher Consumer Consumer
  • 7. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What is RabbitMQ • Messaging broker • Multi-protocol (AMQP 0-9-1, AMQP 1.0, MQTT, STOMP, …) • Started in 2006 • Broad ecosystem including Spring support • Learn more at rabbitmq.com 7
  • 8. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ nodes can form clusters • Balance load (connections, traffic, I/O, …) between nodes • Replicate queue contents • Tolerate node failures 8
  • 9. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Sections 1. High Availability in RabbitMQ 2. Raft overview 3. RabbitMQ and Raft 4. Raft challenges 5. Implementation 9
  • 10. Where We are Today
  • 11. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ High Availability • Replication of data and operations • Message replication is done at the queue level • Called “Queue Mirroring” • In a cluster of RabbitMQ nodes a queue can have a mirror on one or more nodes • Provides fail-over and redundancy 11 Rabbit 1 Q1 Rabbit 2 Q1 Rabbit 3 Q1 Master Queue Mirror Queues
  • 12. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ HA story isn’t perfect! 12
  • 13. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ Queue Mirroring • Internally uses a component called “Guaranteed Multicast” to replicate queue operations and message data • Provides replication and total ordering of operations • Ordering matters: [ENQ + ENQ + DEQ] != [DEQ + ENQ + ENQ] 13
  • 14. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Chain replication Chain Replication ensures strong consistency and good availability guarantees in “fail-stop” scenarios. Chain Replication for Supporting High Throughput and Availability (Robbert van Renesse, Fred B. Schneider) http://www.cs.cornell.edu/home/rvr/papers/OSDI04.pdf 14
  • 15. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Chain replication 15 HEAD TAIL READWRITE
  • 16. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ Mirrored Queue ring 16 MASTER MIRROR MIRROR MIRROR MIRROR DELIVERPUBLISH
  • 17. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ Queue Mirror failure detection 17 MASTER MIRROR MIRROR MIRROR MIRRORPUBLISH Needs timely fault detection
  • 18. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ Mirrored Queue reforms ring 18 MASTER MIRROR MIRROR MIRROR MIRRORPUBLISH DELIVER
  • 19. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ Queue reforms ring 19 MASTER MIRROR MIRROR MIRROR MIRRORPUBLISH DELIVER I was only gone a minute. Can I re-join? It’s complicated…
  • 20. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ Queue mirror sync 20 MASTER MIRROR MIRROR MIRROR MIRRORPUBLISH DELIVER
  • 21. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ documentation wisdom 21 This topology [Ring] through relatively cheap in queues and connections, is rather fragile
  • 22. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 22 [DO AS WE SAY NOT AS WE DO]
  • 23. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ Queue Mirroring • Works well most of the time • Requires good failure detection • Membership changes are expensive (require queue sync) • Master election algorithm is informally specified (at best) 23 We can do better
  • 25. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What do we need? • Strong consistency guarantees • Total order of operations • Predictable behaviour in response to failure events (well-defined recovery procedure) • Safe queue master “fail-over” • Parallel replication • Avoid reinventing another distsys wheel 25
  • 26. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Options • Chain Replication • Paxos • Viewstamped Replication • Raft 26
  • 27. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Raft • A group of algorithms for reaching consensus in a distributed system • Similar problem space to RabbitMQ queue mirroring • Oriented towards implementers • Proven • Multiple implementations • Industry use • etcd • Consul • CockroachDB • TLA+ specification • Requires no external dependencies 27
  • 28. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Raft provides • A state machine log abstraction • Fits many domains • Leader-follower model • State machine log replication • Consistency-oriented, availability characteristics covered later • Total order of operations • Well-defined algorithms important for implementers • Leader election • Safe cluster membership changes • Durable storage expectations • Recovery • Replay log to restore state • Snapshotting 28 Raft FOLLOWER LEADER FOLLOWER
  • 29. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Raft protocol: replicate entry 29 FOLLOWER LEADER FOLLOWER ENQ ‘A’ LOG 1 ENQ ‘A’ CommitIndex: 0 State = [] AppendEntriesRpc { Entries = [1, ENQ ‘A’] AppendEntriesRpc { Entries = [1, ENQ ‘A’]
  • 30. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Raft protocol: reply + commit 30 FOLLOWER LEADER FOLLOWER OK LOG 1 ENQ ‘A’ CommitIndex: 0 State = [] CommitIndex: 1 State = [ENQ ‘A’] AppendEntriesReply { Success = true }
  • 31. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ A raft Learn more at raft.github.io 31
  • 32. How Does Raft Compare?
  • 33. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Taking action What to do when detecting a (potential) failure? A. Nothing • most reliable / least useful B. Try to “fix stuff” • evict down nodes, reform topology • communicate changes to other nodes C. The minimum required • regain / retain availability and consistency 33
  • 34. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Raft vs Queue Mirroring failure handling Raft 34 Queue mirroring Follower Leader Follower Follower Follower Mirror Master Mirror Mirror Mirror
  • 35. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Raft vs Queue Mirroring leader failure Raft 35 Queue mirroring Follower Leader Follower Follower Follower Mirror Master Mirror Mirror Mirror Should I take Sure - your log is up to date. Go ahead. Why I’m the oldest - I’ll be Master! Ok…
  • 36. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ In response to (potential) failure: Raft either: • Does nothing • Does the minimum required • ensures consistency • regains availability 36 RabbitMQ queue mirroring: • Must always do something
  • 38. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Raft in RabbitMQ • Can be adopted in multiple areas incrementally • Area of focus: queue mirroring • Coordination, leader election • Cluster federation • Shovel • Delayed message exchange • Message store data replication • Messages • Distributed data and state storage • Internal metadata store (vhosts, users, permissions, queues, …) 38
  • 39. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Raft in RabbitMQ • More predictable recovery from node failures • Improved serializability and linearizability characteristics • Better scalability of mirrored queues [w.r.t. the number of nodes] • Write-ahead Log • Multi-DC support 39
  • 41. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Message store replication • RabbitMQ allows for complex routing of messages • One message can be routed to many queues (fan-out) • May consumers may receive the same message • Consumers may be connected to any RabbitMQ node • Queue master may exist on any RabbitMQ node • The queue master delivers messages to consumers • Sub-optimal use of network • The same message may be sent over the same socket multiple times 41
  • 42. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Message store replication • Replicate message bodies independently of queue operations • All bodies are written and read locally • Queues only replicate operations + pointers to message data • Many consumers can read the same message from a local store 42
  • 43. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Raft challenges • The cost of consensus • Raft requires “stable storage” (fsync) • Latency • Reduced availability • Requires a quorum • Cluster formation • Seeding • RabbitMQ internal concern • Single leader • Scalability 43
  • 44. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Operational changes • Uneven cluster sizes required / recommended • 3 nodes can tolerate 1 failure • 5 nodes can tolerate 2 failures, and so on… 44
  • 46. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Ra: a Raft library • By Team RabbitMQ • Soon to be open sourced • ASL2 / MPL1.1 licensed • Generically usable, not tied to RabbitMQ • Tailored for RabbitMQ needs • Very much a WIP (breaking API changes are likely) • https://github.com/rabbitmq/ra 46
  • 47. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Ra: implementation • Raft cluster per queue • Many queues = many Raft clusters • Each node writing to it’s own log file • Thousands of concurrent fsync operations • A no-go - we tried it • Raft is chatty • High background network usage when idle 47
  • 48. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Ra: implementation • Shared Write Ahead Log (WAL) • fsync in batches • flushed to raft node specific storage periodically • Storage engine • Similar to LSM tree and "append-oriented" stores (LevelDB, RocksDB) • Compaction is radically simpler in our case • Per RabbitMQ node “heartbeat” process • Reduce network background usage 48
  • 49. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Ra: implementation testing • Unit & integration testing • Property-based testing 🤖 • Correctness is essential • Deployment testing (BOSH) • TLA+ spec for log implementation 🤓 49
  • 50. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Summary • RabbitMQ queue mirroring has fundamental problems • Raft covers a very similar problem space • New design promises lots of improvements 😊 • Implementing Raft is non-trivial • github.com/rabbitmq/ra • We are still learning 50
  • 52. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RabbitMQ 3.7 • More automation-friendly • Easier to use config format • Pluggable peer discovery • Distributed management plugin • Per-vhost limits • Operator policies • Message store multi-tenancy • Distributed via Bintray, Package Cloud and GitHub (not rabbitmq.com) • Learn more at rabbitmq.com/changelog.html. 52