Event Streaming
Event streaming is a way to record and distribute facts as they happen, so many systems can react now or read the same history later.
itDistributed systems, messaging, and integration | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Intro
Event Streaming
Event streaming treats a business fact as data you can publish, retain, and process. An order placed, a payment authorized, and a device reading are events. They say that something happened at a point in time.
This changes how systems connect. A producer publishes an event to a named stream. Consumers read it independently. The producer does not need to know which consumers exist, and a new consumer can often read retained history.
A stream is not a database table, an RPC call, or a queue by default. It is an ordered record of events within a partition or shard. Ordering is normally scoped to that unit, not to an entire distributed system.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://kafka.apache.org/intro/
Supports
- Events, producers, consumers, topics, partitions, brokers, and retained event history
- Per-partition ordering, key-based partition placement, consumer groups, and independent consumers
- Event streaming as publish, store, and process
- https://kafka.apache.org/documentation/#semantics
Supports
- At-most-once, at-least-once, and exactly-once delivery semantics
- Idempotent producers and transactional processing boundaries
- https://kafka.apache.org/documentation/#design
Supports
- Persistence, replication, and distributed design considerations
- https://cloudevents.io/
Supports
- CloudEvents as a specification for describing event data in a common way
- Event-data portability across services and platforms
- https://docs.nats.io/nats-concepts/what-is-nats
Supports
- NATS as a messaging system with publish and subscribe concepts
- https://github.com/manuzhang/awesome-streaming
Supports
- Curated ecosystem discovery for streaming frameworks and applications
- https://github.com/samber/awesome-olap
Supports
- Curated entries for Apache Pulsar, NATS JetStream, Apache Flink, and related streaming tools
- https://debezium.io/
Supports
- Debezium as an open-source change data capture platform that emits change events
- https://flink.apache.org/
Supports
- Apache Flink as a framework for stateful stream processing
- https://pulsar.apache.org/
Supports
- Apache Pulsar as a distributed messaging and streaming platform
- https://www.rabbitmq.com/streams.html
Supports
- RabbitMQ Streams as persistent append-only log streams
