Go for Real Time Streaming Architectures - DotGo 2017

22
Go for Real Time Streaming Architectures

Transcript of Go for Real Time Streaming Architectures - DotGo 2017

Page 1: Go for Real Time Streaming Architectures - DotGo 2017

Go for Real Time Streaming Architectures

Page 2: Go for Real Time Streaming Architectures - DotGo 2017

What are Streaming Architectures ?

Page 3: Go for Real Time Streaming Architectures - DotGo 2017

Events

Page 4: Go for Real Time Streaming Architectures - DotGo 2017

Events

≠ Shared States

Page 5: Go for Real Time Streaming Architectures - DotGo 2017

Pipelines

DataAppChannel Channel

Data App Data …

Page 6: Go for Real Time Streaming Architectures - DotGo 2017

Reactive Architecture

Page 7: Go for Real Time Streaming Architectures - DotGo 2017

Microservices

Page 8: Go for Real Time Streaming Architectures - DotGo 2017

Traditional Design

Page 9: Go for Real Time Streaming Architectures - DotGo 2017

Central Realtime Engine

App

App

App

Publishers

KafkaEvents

Page 10: Go for Real Time Streaming Architectures - DotGo 2017

Processing Frameworks

Page 11: Go for Real Time Streaming Architectures - DotGo 2017

Processing Frameworks

App

App

App

Publishers

KafkaEvents

Streaming engine / frameworks:

Consumers

App

App

- Spark Streaming- Flink- Kafka Streams- Akka Streams- …

Page 12: Go for Real Time Streaming Architectures - DotGo 2017

The cloud-native way

Page 13: Go for Real Time Streaming Architectures - DotGo 2017

The cloud-native way

‣Standalone Go application ‣ Kafka ‣ Sarama

Page 14: Go for Real Time Streaming Architectures - DotGo 2017

The cloud-native way

‣Sarama Cluster

Page 15: Go for Real Time Streaming Architectures - DotGo 2017

The cloud-native way

‣Protobuf

Page 16: Go for Real Time Streaming Architectures - DotGo 2017

The cloud-native way

‣Nats

Page 17: Go for Real Time Streaming Architectures - DotGo 2017

The cloud-native way

‣ Docker ‣Kubernetes

Page 18: Go for Real Time Streaming Architectures - DotGo 2017

The cloud-native way

App

App

App

Publishers

KafkaEvents

Consumers

App

App

Events

Page 19: Go for Real Time Streaming Architectures - DotGo 2017

Benefits

‣ Simple / manageable code

Page 20: Go for Real Time Streaming Architectures - DotGo 2017

Benefits

‣ Simple / manageable code

‣ Performance

Page 21: Go for Real Time Streaming Architectures - DotGo 2017

Benefits

‣ Simple / manageable code

‣ Performance

‣ Easily scalable

Page 22: Go for Real Time Streaming Architectures - DotGo 2017

Go is a modern tool to build cloud-native, high-performance, realtime streaming applications

Mickaël Rémond — @mickael