A History of Messaging Systems
Jowanza Joseph
@jowanza










History





FIFO
LIFO

No Guarantees

At Most Once

At Least Once

Exactly Once






The Queue






Publish-Subscribe


A virtually synchronous environment allows processes to be structured into process groups, and makes events like broadcasts to the group as an entity, group membership changes, and even migration of an activity from one place to another appear to occur instantaneously — in other words, synchronously.
A major advantage to this approach is that many aspects of a distributed application can be treated independently without compromising correctness. Moreover, user code that is designed as if the system were synchronous can often be executed concurrently. We argue that this approach to building distributed and fault-tolerant software is more straightforward, more flexible, and more likely to yield correct solutions than alternative approaches.
Decoupling
Scalability



Wire Protocols




- AMQP
- HTTP
- MQTT
- Kafka
- Protobuf
- Avro
- Message Pack
- Thrift
Features
- Serialization
- Routing
- Security
- Reliability



The Present





Key Features
- Immutable Log
- Distributed
- Multi-Paradigm

Immutable Log
Distributed

Multi-Paradigm
- Pub/Sub
- Queue
- Streaming*
The Future
Database





Keep Building

Questions?
me@jowanza.com
@jowanza
deck
By Jowanza Joseph
deck
- 1,169