scalable distributed cascadiajs / seattle, wa w/ kafka on ... · image from kafka.org “kafka® is...

29
Claudius Mbemba CascadiaJS / Seattle, WA Scalable Distributed Messaging w/ Kafka on Containers

Upload: others

Post on 09-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Claudius MbembaCascadiaJS / Seattle, WA

Scalable Distributed Messaging

w/ Kafka on Containers

Page 2: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Who am I?CTO, Neu Inc.

@mbembashipsclaudiusmbemba.com

github.com/user1mgithub.com/neucleans

Page 3: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

What we’ll cover...● The Problem● The Solution● The Demo● The End

Page 4: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

The Problemwe had to solve

at Neu

Page 5: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

We needed to write our

own solution

Page 6: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

What is Kafka?

Image from Kafka.org

Page 7: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Image from Kafka.org

“Kafka® is used for building real-time data pipelines and streaming apps.

It is horizontally scalable, fault-tolerant, wicked fast, and runs in production in thousands of companies”

Page 8: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Image from USPS.com

A Simple Analogy...● Kafka = Post Office● Producer = Sender● Consumer = Receiver● Topic = P.O. Box Wall

○ Partitions = P.O. Boxes○ Messages = Mail

Page 9: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Image from Google

Page 10: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Image from Google Images

Page 11: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally
Page 13: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Node+Kafka

Page 15: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Kafka+Docker

Page 17: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Bring in the Real Time!

Page 19: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

The Solution

Page 20: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Kafka-Pub-Sub

Github.com/NeuCleans/kafka-pub-sub

Page 21: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Code Walkthrough

Page 22: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Github.com/NeuCleans/kafka-pub-sub

Commented out code hidden

Page 24: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally
Page 25: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

The End

Page 26: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

What we covered...● The Problem● The Solution● The Demo● The End

Page 28: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Takeaway Resources

● http://podplayer.net/?id=82304318 - Podcast w/ Kafka co-creator, Neha Narkhede

● https://kafka-tutorials.confluent.io/ - Kafka tutorials

● https://www.youtube.com/watch?v=udnX21__SuU - Kafka Tutorial - Core Concepts

● https://www.youtube.com/watch?v=UEg40Te8pnE - Introduction to Apache Kafka

● https://kafka.apache.org/ - Kafka Homepage

Page 29: Scalable Distributed CascadiaJS / Seattle, WA w/ Kafka on ... · Image from Kafka.org “Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally

Thank You!- claudiusmbemba.com/public/slides/cjs2019.pdf

- github.com/NeuCleans/kafka-pub-sub

- github.com/User1m/socketio-kafka-pubsub-sample

- github.com/User1m/kafka-pub-sub-investigation