Go for Real Time
Streaming Architectures
What are Streaming
Architectures ?
Events
Events
≠ Shared States
Pipelines
DataApp
Channel Channel
Data App Data …
Reactive Architecture
Microservices
Traditional Design
Central Realtime Engine
App
App
App
Publishers
Kafka
Events
Processing Frameworks
Processing Frameworks
App
App
App
Publishers
Kafka
Events
Streaming engine
/ frameworks:
Consumers
App
App
- Spark Streaming
- Flink
- Kafka Streams
- Akka Streams
- …
The cloud-native way
The cloud-native way
‣ Standalone Go application
‣ Kafka
‣ Sarama
The cloud-native way
‣Sarama Cluster
The cloud-native way
‣Protobuf
The cloud-native way
‣Nats
The cloud-native way
‣ Docker
‣Kubernetes
The cloud-native way
App
App
App
Publishers
KafkaEvents
Consumers
App
App
Events
Benefits
‣ Simple / manageable code
Benefits
‣ Simple / manageable code
‣ Performance
Benefits
‣ Simple / manageable code
‣ Performance
‣ Easily scalable
Go is a modern tool to build
cloud-native, high-performance,
realtime streaming applications
Mickaël Rémond — @mickael

Go for Real Time Streaming Architectures - DotGo 2017