Go for Real Time Streaming Architectures - DotGo 2017

Post on 22-Jan-2018

900 views 2 download

Transcript of Go for Real Time Streaming Architectures - DotGo 2017

Go for Real Time Streaming Architectures

What are Streaming Architectures ?

Events

Events

≠ Shared States

Pipelines

DataAppChannel Channel

Data App Data …

Reactive Architecture

Microservices

Traditional Design

Central Realtime Engine

App

App

App

Publishers

KafkaEvents

Processing Frameworks

Processing Frameworks

App

App

App

Publishers

KafkaEvents

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