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

  • 810