SlideShare a Scribd company logo
1 of 79
Download to read offline
Ka#ka
Huynh	Quang	Thao	
Trusting	Social
Message	Queue
- Message	queues	provide	an	asynchronous	communications	protocol,	
meaning	that	the	sender	and	receiver	of	the	message	do	not	need	to	
interact	with	the	message	queue	at	the	same	time.		
- Messages	placed	onto	the	queue	are	stored	until	the	recipient	
retrieves	them.	(Wikipedia)
Overview	Architecture
Ka#ka	Architecture	-	General
Ka#ka	Architecture	-	Partition
Ka#ka	Architecture	-	replication
Ka#ka	Architecture	-	Consumer	Group
Ka#ka	Architecture	-	overview
Ka#ka	Architecture
Ka#ka	at	Grab
https://engineering.grab.com/quotas-service
Ka#ka	at	Reddit
https://redditblog.com/2017/05/24/view-counting-at-reddit/
Ka#ka	Concepts
Zookeeper
- It	is	essentially	a	centralized	service	for	distributed	systems	to	a	
hierarchical	key-value	store,	which	is	used	to	provide	a	distributed	
con#iguration	service,	synchronization	service,	and	naming	registry	
for	large	distributed	systems.	(Wikipedia)
Zookeeper
- It	is	essentially	a	centralized	service	for	distributed	systems	to	a	
hierarchical	key-value	store,	which	is	used	to	provide	a	distributed	
con#iguration	service,	synchronization	service,	and	naming	registry	
for	large	distributed	systems.	(Wikipedia)	
- Offer	high	availability:	Ka#ka,	Spark,	Solr,	Hadoop.
Zookeeper
- It	is	essentially	a	centralized	service	for	distributed	systems	to	a	
hierarchical	key-value	store,	which	is	used	to	provide	a	distributed	
con#iguration	service,	synchronization	service,	and	naming	registry	
for	large	distributed	systems.	(Wikipedia)	
- Offer	high	availability:	Ka#ka,	Spark,	Solr,	Hadoop.	
- Other	similar	services:	etcd	(used	in	Kubernetes),	consult.
Zookeeper
- It	is	essentially	a	centralized	service	for	distributed	systems	to	a	
hierarchical	key-value	store,	which	is	used	to	provide	a	distributed	
con#iguration	service,	synchronization	service,	and	naming	registry	
for	large	distributed	systems.	(Wikipedia)	
- Offer	high	availability:	Ka#ka,	Spark,	Solr,	Hadoop.	
- Other	similar	services:	etcd	(used	in	Kubernetes),	consult.	
- Ka#ka	uses	the	Zookeeper	to	maintains	broker	con#igurations,	
consumer	con#igurations	(old	version),	available	broker	nodes,	
electing	controller,	service	discovery,		…
Broker	&	Controller
- A	Ka#ka	cluster	consists	of	one	or	more	servers	which	are	called	
brokers.		
- Producers	are	processes	that	publish	the	data	into	Ka#ka	topics	which	
stored	in	the	brokers.
Broker	&	Controller
- 	In	a	Ka#ka	cluster,	one	of	the	brokers	serves	as	the	controller.	
- Elected	using	leader	election	on	the	Zookeeper.	
- Responsible	for	managing	the	states	of	partitions	and	replicas.	
- Electing	partition	leader.
Broker	&	Controller
- 	In	a	Ka#ka	cluster,	one	of	the	brokers	serves	as	the	controller.	
- Responsible	for	managing	the	states	of	partitions	and	replicas.	
- Electing	partition	leader.	
- Elected	using	leader	election	on	the	Zookeeper.
Topic-Partition-Replication
- The	topic	is	the	place	where	data	is	published	by	producers	and	is	
pulled	by	consumers.
Topic-Partition-Replication
- The	topic	is	the	place	where	data	is	published	by	producers	and	is	
pulled	by	consumers.	
- The	topic	is	divided	into	several	partitions.		
- Each	partition	is	ordered	and	messages	within	a	partition	get	an	
incrementing	id,	called	offset.	
- Partitions	allow	us	to	parallelize	the	consuming	work	by	splitting	the	
data	into	multiple	places.
Topic-Partition-Replication
- The	topic	is	the	place	where	data	is	published	by	producers	and	is	
pulled	by	consumers.	
- The	topic	is	divided	into	several	partitions.		
- Each	partition	is	ordered	and	messages	within	a	partition	get	an	
incrementing	id,	called	offset.	
- Partitions	allow	us	to	parallelize	the	consuming	work	by	splitting	the	
data	into	multiple	places.		
- Every	topic	partition	in	Ka:ka	is	replicated	n	times,	which	n	is	the	
replication	factor	of	the	topic.	
- Each	replication	will	be	on	a	separate	broker.	
- The	replication	factor	must	be	less	than	or	equal	to	the	total	brokers.
Topic-Partition-Replication
- The	topic	is	the	place	where	data	is	published	by	producers	and	is	
pulled	by	consumers.	
- The	topic	is	divided	into	several	partitions.		
- Each	partition	is	ordered	and	messages	within	a	partition	get	an	
incrementing	id,	called	offset.	
- Partitions	allow	us	to	parallelize	the	consuming	work	by	splitting	the	
data	into	multiple	places.		
- Every	topic	partition	in	Ka:ka	is	replicated	n	times,	which	n	is	the	
replication	factor	of	the	topic.	
- Each	replication	will	be	on	a	separate	broker.	
- The	replication	factor	must	be	less	than	or	equal	to	the	total	brokers.	
Question:	Can	the	consumer	read	data	from	the	replica?
Topic-Partition-Replication
- Order	is	guaranteed	only	within	the	partition.	
- Data		is	kept	only	for	a	limited	time.	(default	2	weeks)	
- Once	data	is	written	to	a	partition,	it	can’t	be	changed.	
- Data	is	assigned	randomly	to	a	partition	unless	a	key	is	provided.
Topic-Partition-Replication
Partition	Leader/Follower/ISR
- Ka#ka	chooses	one	partition’s	replica	as	the	leader	and	all	other	
partition’s	leaders	as	followers.	
- All	producers	will	write	to	this	leader	and	all	consumers	will	read	from	
this	leader.	
- A	follower	that	is	in-sync	called	an	ISR.	(in-sync	replica)	
- Once	the	leader	is	down,	Ka#ka	will	elect	one	follower	in	the	"ISR	set"	to	
become	the	leader.
Partition	Leader/Follower/ISR
- Ka#ka	chooses	one	partition’s	replica	as	the	leader	and	all	other	
partition’s	leaders	as	followers.	
- All	producers	will	write	to	this	leader	and	all	consumers	will	read	from	
this	leader.	
- A	follower	that	is	in-sync	called	an	ISR.	(in-sync	replica)	
- Once	the	leader	is	down,	Ka#ka	will	elect	one	follower	in	the	"ISR	set"	to	
become	the	leader.	
Question:	How	does	the	Ka#ka	maintain	the	ISR	set	for	each	partition?
Producer	and	Consumer
- Producer:	a	Ka#ka	client	that	publishes	messages	to	the	Ka#ka	cluster.	
- Consumer:	a	Ka#ka	client	that	reads	messages	which	is	published	by	
publishers	at	their	own	pace.
Producer
- The	producer	has	to	specify	the	topic	name	and	at	least	one	broker	to	
connect.	
- It	it	better	to	specify	multiple	brokers	for	the	high	availability.		
- Ka#ka	will	automatically	take	care	of	routing	the	data		to	the	right	
brokers.
Producer	-	acknowledgement
Producers	can	set	the	acknowledgment	con#iguration	for	sending	data.	
Acks	=	0	
- The	message	is	pushed	to	the	socket	buffer.	
- The	producer	won't	wait	for	the	acknowledgment	from	the	leader.		
Acks	=	1	
- The	leader	will	append	the	message	to	its	log	and	then	returns	the	
acknowledgment	to	the	producer	.		
- The	producer	will	wait	for	the	acknowledgment	from	the	leader.	
Acks	=	all	
- The	leader	will	append	the	message	to	its	log.	
- The	leader	will	wait	for	all	acknowledgments	from	all	in-sync	replicas.	
- The	producer	will	wait	for	the	leader's	acknowledgment.	
- No	data	loss.
Producer	-	acknowledgement
Producers	can	set	the	acknowledgment	con#iguration	for	sending	data.	
Acks	=	0	
- The	message	is	pushed	to	the	socket	buffer.	
- The	producer	won't	wait	for	the	acknowledgment	from	the	leader.		
Acks	=	1	
- The	leader	will	append	the	message	to	its	log	and	then	returns	the	
acknowledgment	to	the	producer	.		
- The	producer	will	wait	for	the	acknowledgment	from	the	leader.	
Acks	=	all	
- The	leader	will	append	the	message	to	its	log.	
- The	leader	will	wait	for	all	acknowledgments	from	all	in-sync	replicas.	
- The	producer	will	wait	for	the	leader's	acknowledgment.	
- No	data	loss.	
Question:	How	does	choosing	the	ACK	value	affect	the	in-sync	replica	set?
Producer	-	key	message
- Producers	can	choose	to	send	a	key	with	the	message.	
- If	a	key	is	sent	along	with	the	message,	it	guarantees	that	all	messages	
with	the	same	key	will	always	store	in	the	same	partition.	
- Some	Ka#ka	functionalities	based	on	the	key	message:	log	compaction,	
cleaning	up	offsets	...
Consumer
- The	consumer	has	to	specify	the	topic	name,	partition	(optional)	and	at	
least	one	broker	to	connect.	
- It	it	better	to	specify	multiple	brokers	for	the	high	availability.		
- Ka#ka	will	automatically	take	care	of		pulling	data	from	the	right	brokers.	
- Data	is	read	in	order	in	each	partition.
Consumer	-	Offset	types
High	Watermark:	
- The	offset	of	messages	that	are	fully	replicated	to	all	ISR-replicas.	
Log	End	Offset:	
- The	latest	offset	of	messages	on	the	leader	partition.	
- Consumer	only	reads	up	to	the	high	watermark.	
Leader	Partition
1
2
3
4	(HW)
5
6
7	(LEO)
ISR-Replica	1
1
2
3
4
5
6
7
ISR-Replica	2
1
2
3
4
Out-of-sync
1
2
replica.lag.max.messages=4
Consumer	-	Offset	types
High	Watermark:	
- The	offset	of	messages	that	are	fully	replicated	to	all	ISR-replicas.	
Log	End	Offset:	
- The	latest	offset	of	messages	on	the	leader	partition.	
- Consumer	only	reads	up	to	the	high	watermark.	
Leader	Partition
1
2
3
4
5
6
7	(HW	+	LEO)
ISR-Replica	1
1
2
3
4
5
6
7
ISR-Replica	2
1
2
3
4
5	
6
7
Out-of-sync
1
2
replica.lag.max.messages=4
Consumer	Group
- Messaging	traditionally	has	two	models:	queuing	and	publish-
subscribe.	
- queuing:		allows	us	to	divide	up	the	processing	of	data	over	multiple	
consumer	instances,	which	lets	you	scale	your	processing	
- 	Publish-subscribe:	allow	us	broadcast	data	to	multiple	processes	but	
has	no	way	of	scaling	processing	since	every	message	goes	to	every	
subscriber.	
- The	consumer	group	concept	in	Ka#ka	generalizes	these	two	concepts.
Consumer	Group
- Consumers	can	join	a	group	by	using	the	same	group.id.		
- Ka#ka	assigns	partitions	to	the	consumers	in	the	same	group.	
- Each	partition	is	consumed	by	exactly	one	consumer	in	the	group.
Consumer	Group
- Consumers	can	join	a	group	by	using	the	same	group.id.		
- Ka#ka	assigns	partitions	to	the	consumers	in	the	same	group.	
- Each	partition	is	consumed	by	exactly	one	consumer	in	the	group.	
- Each	consumer	within	a	group	reads	from	exclusive	partitions.	
- One	consumer	can	consume	multiple	partitions.	
- It	cannot	have	more	consumers	than	partitions.	Otherwise,	some	
consumers	will	be	inactive	state.
Consumer	Group
- Consumers	can	join	a	group	by	using	the	same	group.id.		
- Ka#ka	assigns	partitions	to	the	consumers	in	the	same	group.	
- Each	partition	is	consumed	by	exactly	one	consumer	in	the	group.	
- Each	consumer	within	a	group	reads	from	exclusive	partitions.	
- One	consumer	can	consume	multiple	partitions.	
- It	cannot	have	more	consumers	than	partitions.	Otherwise,	some	
consumers	will	be	inactive	state.	
Question:	Do	Ka#ka	allow	one	topic	have	multiple	consumer	groups?
Consumer	Group
- Consumers	can	join	a	group	by	using	the	same	group.id.		
- Ka#ka	assigns	partitions	to	the	consumers	in	the	same	group.	
- Each	partition	is	consumed	by	exactly	one	consumer	in	the	group.	
- Each	consumer	within	a	group	reads	from	exclusive	partitions.	
- One	consumer	can	consume	multiple	partitions.	
- It	cannot	have	more	consumers	than	partitions.	Otherwise,	some	
consumers	will	be	inactive	state.	
Question:	Do	Ka#ka	allow	one	topic	have	multiple	consumer	groups?	
Answer:	Yes	
- E.g:	consumer	groups	for	saving	the	data	to	database.	Consumer	group	
for	transforming	the	data	into	other	systems.
Consumer	Group
Consumer	Group
Consumer	Group
Consumer	Offset
- Ka#ka	stores	the	consumer	offset	in	the	topic	named	"_	
_consumer_offsets"	
- [Group,	Topic,	Partition]	->	[Offset,	MetaData,	TimeStamp]	
- Automatically	create	when	a	consumer	using	a	group	connects	to	the	
cluster.	
- This	information	stored	in	the	Ka#ka	cluster	(old	version:	Zookeeper).	
- The	consumer	should	commit	the	offset	automatically	or	manually	after	
reading	the	message.
Consumer	Offset
- Ka#ka	stores	the	consumer	offset	in	the	topic	named	"_	
_consumer_offsets"	
- [Group,	Topic,	Partition]	->	[Offset,	MetaData,	TimeStamp]	
- Automatically	create	when	a	consumer	using	a	group	connects	to	the	
cluster.	
- This	information	stored	in	the	Ka#ka	cluster	(old	version:	Zookeeper).	
- The	consumer	should	commit	the	offset	automatically	or	manually	after	
reading	the	message.	
Question:	What	if	the	"_	_consumer_offsets"	topic	grows	huge	cause	
slowing	down	the	search?
Consumer	Group	Coordinator
- Group	coordinator	is	the	broker	which	receives	heartbeats(or	polling	
for	message)	from	all	consumers	within	the	consumer	group.	
- Every	consumer	group	has	only	one	group	coordinator.	
- When	a	consumer	want	to	join	a	consumer	group,	it	sends	a	request	to	
group	coordinator.
Consumer	Group	Leader
- The	consumer	group	leader	is	one	of	the	consumers	in	a	consumer	group.	
- When	a	consumer	wants	to	join	a	consumer	group,	it	sends	a	JoinGroup	
request	to	the	group	coordinator.	
- The	#irst	consumer	to	join	the	group	becomes	the	group	leader.
Group	Leader	and	Coordinator	relationship
Rebalancing	Event	occurs	when:	
- A	new	consumer	joins	the	consumer	group.	
- A	consumer	leaves	the	consumer	group.	
- A	consumer	is	"disconnected"	to	consumer	group	(group	coordinator	
doesn't	receive	heartbeat	event	from	this	consumer)
Group	Leader	and	Coordinator	relationship
Rebalancing	Event	occurs	when:	
- A	new	consumer	joins	the	consumer	group.	
- A	consumer	leaves	the	consumer	group.	
- A	consumer	is	"disconnected"	to	consumer	group	(group	coordinator	
doesn't	receive	heartbeat	event	from	this	consumer)	
- The	group	leader	will	make	the	assignment	of	each	partition	to	each	
consumer.	Then	the	group	leader	sends	this	assignment	to	the	group	
coordinator.	
- The	group	coordinator	will	send	back	the	assignment	to	all	consumers.	
- Rebalancing	event	happens.
Group	Leader	and	Coordinator	relationship
Rebalancing	Event	occurs	when:	
- A	new	consumer	joins	the	consumer	group.	
- A	consumer	leaves	the	consumer	group.	
- A	consumer	is	"disconnected"	to	consumer	group	(group	coordinator	
doesn't	receive	heartbeat	event	from	this	consumer)	
- The	group	leader	will	make	the	assignment	of	each	partition	to	each	
consumer.	Then	the	group	leader	sends	this	assignment	to	the	group	
coordinator.	
- The	group	coordinator	will	send	back	the	assignment	to	all	consumers.	
- Rebalancing	event	happens.	
Question:	Why	doesn't	the	group	coordinator	(broker)	take	the	job	that	
assigns	partitions	to	consumers,	but	the	group	leader	(consumer)	do	that?
Group	Leader	and	Coordinator
Algorithm:	
1.Members	JoinGroup	with	their	respective	subscriptions.	
2.The	leader	collects	member	subscriptions	from	its	JoinGroup	response	
and	performs	the	group	assignment.			
3.All	members	(including	the	leader)	send	SyncGroup	to	#ind	their	
assignment.	
4.Once	created,	there	are	two	cases	which	can	trigger	reassignment:	
a.Topic	metadata	changes	that	have	no	impact	on	subscriptions	cause	
re-sync.	The	leader	computes	the	new	assignment	and	sends	
SyncGroup.	
b.Membership	or	subscription	changes	cause	rejoin.
Class	Diagram
Delivery	Semantic
Delivery	Semantic
- At	least	once	
- At	most	once	
- Exactly	once
Idempotent	Producer
Idempotent	Producer
- Generate	PID	for	each	producer	
- PID	and	a	sequence	number	are	bundled	together	with	the	message
Isolation	level	for	consumer
Read	Committed	
- non-transactional	and	COMMITTED	transactional	messages	are	visible.	
- Read	until	LSO:	Last	Stable	Offset		
Read	Uncommitted	
- All	messages	are	visible
Exactly	Once	Semantic
Part	1:	Idempotent	producer	
- guarantee	messages	are	produced	once	and	in	order.	
Part	2:	Producer	Transaction	support	
- Commit	or	fail	a	set	of	produced	messages	and	consumer	offsets	across	
partitions	
Part	3:	Consumer	transaction	support	
- Isolation	level	is	read	committed.	
- Filter	out	messages	for	aborted	transactions,	and	wait	for	transactions	to	
be	committed	before	processing.
Exactly	Once	Semantic
Part	1:	Idempotent	producer	
- guarantee	messages	are	produced	once	and	in	order.	
Part	2:	Producer	Transaction	support	
- Commit	or	fail	a	set	of	produced	messages	and	consumer	offsets	across	
partitions	
Part	3:	Consumer	transaction	support	
- Isolation	level	is	read	committed.	
- Filter	out	messages	for	aborted	transactions,	and	wait	for	transactions	to	
be	committed	before	processing.
Question:	What	if	the	producer	is	crashed,	or	the	consumer	is	failed	to	
commit	its	processed	offset.
Ka#ka	Security
Authentication
TLS/SSL Integrating	with	PKI	infrastructure
SASL/GSSAPI Integrating	with	Kerberos	infrastructure
SASL/PLAIN Integrating	with	existing	password	server/database
Custom	SASL	
mechanism Integrating	with	existing	authentication	database
Others SASL/SCAM,	SASL/OathBearer(beta),	SASL_SSL
Authentication	using	SASL/GSSAPI	with	Kerberos
Authentication	using	SASL/PLAIN
Authorization	using	Zookeeper	ACL
The	Ecosystem
Ka#ka	Connect
Ka#ka	Connect	is	a	framework	for	connecting	Ka#ka	with	external	
systems	
e.g:	databases,	key-value	stores,	search	indexes,	and	#ile	systems.
Ka#ka	Connect
Ka#ka	Stream
Ka#ka	Streams	is	a	library	for	building	streaming	applications	that	
transform	input	Ka#ka	topics	into	output	Ka#ka	topics.
Con#luent	Schema	Registry
- Con#luent	Schema	Registry		provides	a	RESTful	interface	for	storing	
and	retrieving	Apache	Avro®	schemas.		
- It	stores	a	versioned	history	of	all	schemas.
Monitoring	Tools
⁃ Ka#ka	consumer	lag	checking:	https://github.com/linkedin/Burrow	
⁃ Ka#ka	toolbox	(Topic	UI,	Schema	UI,	Connect	UI):	https://www.landoop.com/lenses-box/		
⁃ Ka#ka	Manager:	https://github.com/yahoo/ka#ka-manager		
⁃ Zookeeper	Con#iguration,	Monitoring,	Backup	(Net#lix):	https://github.com/soabase/exhibitor		
⁃ Monitor	the	availability	of	Ka#ka	clusters:	https://github.com/linkedin/ka#ka-monitor		
⁃ Ka#ka	Tools:	https://github.com/linkedin/ka#ka-tools		
⁃ Cluster	Management:		https://github.com/apache/helix	
⁃ Security	Manager:	https://github.com/simplesteph/ka#ka-security-manager		
⁃ ....
Ka#ka	vs	RabbitMQ
Advanced	Message	Queuing	Protocol		
(RabbitMQ)
Log	based	Message	Protocol		
(Ka:ka)
A	single	
message	is	slow	
to	process
No	problem
Holds	up	the	processing	of	subsequent	
messages	in	that	partition.	
Message	Order
Cannot	keep	order	in	case	of	multiple	
consumers
Can	keep	the	order	in	the	partition
Consumers	
cannot	keep	up	
with	producers	
when	consumer	die,	we	should	carefully	
delete	any	queues	whose	consumer	has	shut	
down.	
Otherwise,	they	continue	consume	memory,	
affect	other	alive	consumers.
Just	store	messages	on	queue	(hard	
drive)	
We	choose	Ka:ka	when:	
- each	message	is	fast	to	process	and	high	message	throughput	
- message	order	is	important	
- Keyed	messages	
- Replay	old	messages	
- Semantic	Delivery
Client	Implementation
Libraries
There	are	2	main	Ka:ka	client	libraries:	
-	https://github.com/Shopify/sarama	
-	https://github.com/con#luentinc/con#luent-ka#ka-go
Sarama
- Written	in	Golang.	Open	sourced	by	Shopify	
- Easier	to	read.	Missed	many	features
Con#luent	Ka#ka	Go
- Wrap	again	librdka#ka,	which	is	written	in	C++.	
- Have	many	latest	features	from	Ka#ka.	
- Still	features	behind	of#icial	Java	Ka#ka	client.	
- Con#luent:	founded	by	Ka#ka	original	authors.
Discussion	about	the	Ka#ka	PR
https://github.com/tsocial/ka#ka
References	
Designing	Data-Intensive	Applications
Ka#ka	The	De#initive	Guide
Ka#ka	Streams	in	Actions
References
- http://ka#ka.apache.org/documentation.html	
- Consumer	Heartbeats	Proposal	
- https://cwiki.apache.org/con#luence/display/KAFKA/Offset+Management	
- Exactly	Once	Delivery	Proposal		
- https://cwiki.apache.org/con#luence/display/KAFKA/Ka#ka+Replication	
- https://cwiki.apache.org/con#luence/display/KAFKA/Ka#ka+Client-side+Assignment+Proposal	
- https://github.com/edenhill/librdka#ka/issues/1308	
- https://www.slideshare.net/jjkoshy/offset-management-in-ka#ka	
- https://softwareengineeringdaily.com/2016/10/07/ka#ka-streams-with-jay-kreps/	
- Logs:	What	every	software	engineer	should	know	about	real-time	data	unifying	
- http://martin.kleppmann.com/2015/08/05/ka#ka-samza-unix-philosophy-distributed-data.html	
- http://martin.kleppmann.com/2018/01/18/event-types-in-ka#ka-topic.html	
- http://martin.kleppmann.com/2015/04/23/bottled-water-real-time-postgresql-ka#ka.html	
- https://www.con#luent.io/blog/unifying-stream-processing-and-interactive-queries-in-apache-ka#ka/	
- https://www.con#luent.io/blog/how-choose-number-topics-partitions-ka#ka-cluster	
- https://engineering.linkedin.com/ka#ka/benchmarking-apache-ka#ka-2-million-writes-second-three-
cheap-machines
Q&A

More Related Content

What's hot

Consumer offset management in Kafka
Consumer offset management in KafkaConsumer offset management in Kafka
Consumer offset management in KafkaJoel Koshy
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database Systemconfluent
 
Awesome Traefik - Ingress Controller for Kubernetes - Swapnasagar Pradhan
Awesome Traefik - Ingress Controller for Kubernetes - Swapnasagar PradhanAwesome Traefik - Ingress Controller for Kubernetes - Swapnasagar Pradhan
Awesome Traefik - Ingress Controller for Kubernetes - Swapnasagar PradhanAjeet Singh Raina
 
Vert.x for Microservices Architecture
Vert.x for Microservices ArchitectureVert.x for Microservices Architecture
Vert.x for Microservices ArchitectureIdan Fridman
 
Kafka Streams for Java enthusiasts
Kafka Streams for Java enthusiastsKafka Streams for Java enthusiasts
Kafka Streams for Java enthusiastsSlim Baltagi
 
RabbitMQ vs Apache Kafka Part II Webinar
RabbitMQ vs Apache Kafka Part II WebinarRabbitMQ vs Apache Kafka Part II Webinar
RabbitMQ vs Apache Kafka Part II WebinarErlang Solutions
 
Introduction to Kafka with Spring Integration
Introduction to Kafka with Spring IntegrationIntroduction to Kafka with Spring Integration
Introduction to Kafka with Spring IntegrationBorislav Markov
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaJoe Stein
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producerconfluent
 
Beautiful Monitoring With Grafana and InfluxDB
Beautiful Monitoring With Grafana and InfluxDBBeautiful Monitoring With Grafana and InfluxDB
Beautiful Monitoring With Grafana and InfluxDBleesjensen
 
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision TreeApache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision TreeSlim Baltagi
 
Flintrock: A Faster, Better spark-ec2 by Nicholas Chammas
Flintrock: A Faster, Better spark-ec2 by Nicholas ChammasFlintrock: A Faster, Better spark-ec2 by Nicholas Chammas
Flintrock: A Faster, Better spark-ec2 by Nicholas ChammasSpark Summit
 
ProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQLProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQLRené Cannaò
 
High Concurrency Architecture at TIKI
High Concurrency Architecture at TIKIHigh Concurrency Architecture at TIKI
High Concurrency Architecture at TIKINghia Minh
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?confluent
 
Introducing Change Data Capture with Debezium
Introducing Change Data Capture with DebeziumIntroducing Change Data Capture with Debezium
Introducing Change Data Capture with DebeziumChengKuan Gan
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!Guido Schmutz
 
Hudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilitiesHudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilitiesNishith Agarwal
 

What's hot (20)

Consumer offset management in Kafka
Consumer offset management in KafkaConsumer offset management in Kafka
Consumer offset management in Kafka
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database System
 
Awesome Traefik - Ingress Controller for Kubernetes - Swapnasagar Pradhan
Awesome Traefik - Ingress Controller for Kubernetes - Swapnasagar PradhanAwesome Traefik - Ingress Controller for Kubernetes - Swapnasagar Pradhan
Awesome Traefik - Ingress Controller for Kubernetes - Swapnasagar Pradhan
 
Vert.x for Microservices Architecture
Vert.x for Microservices ArchitectureVert.x for Microservices Architecture
Vert.x for Microservices Architecture
 
Kafka Streams for Java enthusiasts
Kafka Streams for Java enthusiastsKafka Streams for Java enthusiasts
Kafka Streams for Java enthusiasts
 
RabbitMQ vs Apache Kafka Part II Webinar
RabbitMQ vs Apache Kafka Part II WebinarRabbitMQ vs Apache Kafka Part II Webinar
RabbitMQ vs Apache Kafka Part II Webinar
 
CockroachDB
CockroachDBCockroachDB
CockroachDB
 
Introduction to Kafka with Spring Integration
Introduction to Kafka with Spring IntegrationIntroduction to Kafka with Spring Integration
Introduction to Kafka with Spring Integration
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producer
 
Beautiful Monitoring With Grafana and InfluxDB
Beautiful Monitoring With Grafana and InfluxDBBeautiful Monitoring With Grafana and InfluxDB
Beautiful Monitoring With Grafana and InfluxDB
 
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision TreeApache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
 
Flintrock: A Faster, Better spark-ec2 by Nicholas Chammas
Flintrock: A Faster, Better spark-ec2 by Nicholas ChammasFlintrock: A Faster, Better spark-ec2 by Nicholas Chammas
Flintrock: A Faster, Better spark-ec2 by Nicholas Chammas
 
ProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQLProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQL
 
High Concurrency Architecture at TIKI
High Concurrency Architecture at TIKIHigh Concurrency Architecture at TIKI
High Concurrency Architecture at TIKI
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
 
Introducing Change Data Capture with Debezium
Introducing Change Data Capture with DebeziumIntroducing Change Data Capture with Debezium
Introducing Change Data Capture with Debezium
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
 
Hudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilitiesHudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilities
 

Similar to Kafka: All an engineer needs to know

PHX DevOps Days: Service Mesh Landscape
PHX DevOps Days: Service Mesh LandscapePHX DevOps Days: Service Mesh Landscape
PHX DevOps Days: Service Mesh LandscapeChristian Posta
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Introduction to Kafka and Zookeeper
Introduction to Kafka and ZookeeperIntroduction to Kafka and Zookeeper
Introduction to Kafka and ZookeeperRahul Jain
 
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSUHow to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSUCarlos Santana
 
Cluster_Performance_Apache_Kafak_vs_RabbitMQ
Cluster_Performance_Apache_Kafak_vs_RabbitMQCluster_Performance_Apache_Kafak_vs_RabbitMQ
Cluster_Performance_Apache_Kafak_vs_RabbitMQShameera Rathnayaka
 
Microservices in a Streaming World
Microservices in a Streaming WorldMicroservices in a Streaming World
Microservices in a Streaming WorldHans Jespersen
 
ADV Slides: Trends in Streaming Analytics and Message-oriented Middleware
ADV Slides: Trends in Streaming Analytics and Message-oriented MiddlewareADV Slides: Trends in Streaming Analytics and Message-oriented Middleware
ADV Slides: Trends in Streaming Analytics and Message-oriented MiddlewareDATAVERSITY
 
The Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your ServicesThe Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your ServicesChristian Posta
 
Current and Future of Apache Kafka
Current and Future of Apache KafkaCurrent and Future of Apache Kafka
Current and Future of Apache KafkaJoe Stein
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka IntroductionAmita Mirajkar
 
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...Christian Posta
 
A Cassandra driver from and for the Lua community
A Cassandra driver from and for the Lua communityA Cassandra driver from and for the Lua community
A Cassandra driver from and for the Lua communityThibault Charbonnier
 
Messaging - RabbitMQ, Azure (Service Bus), Docker and Azure Functions
Messaging - RabbitMQ, Azure (Service Bus), Docker and Azure FunctionsMessaging - RabbitMQ, Azure (Service Bus), Docker and Azure Functions
Messaging - RabbitMQ, Azure (Service Bus), Docker and Azure FunctionsJohn Staveley
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesRakesh Gujjarlapudi
 
Atlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshAtlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshChristian Posta
 
Can Apache Kafka Replace a Database? – The 2021 Update | Kai Waehner, Confluent
Can Apache Kafka Replace a Database? – The 2021 Update | Kai Waehner, ConfluentCan Apache Kafka Replace a Database? – The 2021 Update | Kai Waehner, Confluent
Can Apache Kafka Replace a Database? – The 2021 Update | Kai Waehner, ConfluentHostedbyConfluent
 
Event Driven Architectures with Apache Kafka
Event Driven Architectures with Apache KafkaEvent Driven Architectures with Apache Kafka
Event Driven Architectures with Apache KafkaMatt Masuda
 
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
 
Digital Rebar Community Welcome Guide
Digital Rebar Community Welcome GuideDigital Rebar Community Welcome Guide
Digital Rebar Community Welcome GuideRackN
 

Similar to Kafka: All an engineer needs to know (20)

PHX DevOps Days: Service Mesh Landscape
PHX DevOps Days: Service Mesh LandscapePHX DevOps Days: Service Mesh Landscape
PHX DevOps Days: Service Mesh Landscape
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Introduction to Kafka and Zookeeper
Introduction to Kafka and ZookeeperIntroduction to Kafka and Zookeeper
Introduction to Kafka and Zookeeper
 
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSUHow to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU
 
Cluster_Performance_Apache_Kafak_vs_RabbitMQ
Cluster_Performance_Apache_Kafak_vs_RabbitMQCluster_Performance_Apache_Kafak_vs_RabbitMQ
Cluster_Performance_Apache_Kafak_vs_RabbitMQ
 
Microservices in a Streaming World
Microservices in a Streaming WorldMicroservices in a Streaming World
Microservices in a Streaming World
 
ADV Slides: Trends in Streaming Analytics and Message-oriented Middleware
ADV Slides: Trends in Streaming Analytics and Message-oriented MiddlewareADV Slides: Trends in Streaming Analytics and Message-oriented Middleware
ADV Slides: Trends in Streaming Analytics and Message-oriented Middleware
 
The Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your ServicesThe Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your Services
 
Design patternsforiot
Design patternsforiotDesign patternsforiot
Design patternsforiot
 
Current and Future of Apache Kafka
Current and Future of Apache KafkaCurrent and Future of Apache Kafka
Current and Future of Apache Kafka
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka Introduction
 
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
 
A Cassandra driver from and for the Lua community
A Cassandra driver from and for the Lua communityA Cassandra driver from and for the Lua community
A Cassandra driver from and for the Lua community
 
Messaging - RabbitMQ, Azure (Service Bus), Docker and Azure Functions
Messaging - RabbitMQ, Azure (Service Bus), Docker and Azure FunctionsMessaging - RabbitMQ, Azure (Service Bus), Docker and Azure Functions
Messaging - RabbitMQ, Azure (Service Bus), Docker and Azure Functions
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
Atlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshAtlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service Mesh
 
Can Apache Kafka Replace a Database? – The 2021 Update | Kai Waehner, Confluent
Can Apache Kafka Replace a Database? – The 2021 Update | Kai Waehner, ConfluentCan Apache Kafka Replace a Database? – The 2021 Update | Kai Waehner, Confluent
Can Apache Kafka Replace a Database? – The 2021 Update | Kai Waehner, Confluent
 
Event Driven Architectures with Apache Kafka
Event Driven Architectures with Apache KafkaEvent Driven Architectures with Apache Kafka
Event Driven Architectures with Apache Kafka
 
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
 
Digital Rebar Community Welcome Guide
Digital Rebar Community Welcome GuideDigital Rebar Community Welcome Guide
Digital Rebar Community Welcome Guide
 

More from Thao Huynh Quang

2021-03-08-telegram-vs-signal.pdf
2021-03-08-telegram-vs-signal.pdf2021-03-08-telegram-vs-signal.pdf
2021-03-08-telegram-vs-signal.pdfThao Huynh Quang
 
Consensus and Raft Algorithm in Distributed System
Consensus and  Raft Algorithm in Distributed SystemConsensus and  Raft Algorithm in Distributed System
Consensus and Raft Algorithm in Distributed SystemThao Huynh Quang
 
Consensus and Raft algorithm (Vietnamese version)
Consensus and Raft algorithm (Vietnamese version)Consensus and Raft algorithm (Vietnamese version)
Consensus and Raft algorithm (Vietnamese version)Thao Huynh Quang
 
Kotlin Introduction with Android applications
Kotlin Introduction with Android applicationsKotlin Introduction with Android applications
Kotlin Introduction with Android applicationsThao Huynh Quang
 
Git Introduction with illustrations
Git Introduction with illustrationsGit Introduction with illustrations
Git Introduction with illustrationsThao Huynh Quang
 
Android Jetpack: Room persistence library
Android Jetpack: Room persistence libraryAndroid Jetpack: Room persistence library
Android Jetpack: Room persistence libraryThao Huynh Quang
 
Kubernetes and service mesh application
Kubernetes  and service mesh applicationKubernetes  and service mesh application
Kubernetes and service mesh applicationThao Huynh Quang
 
Concurrency pattern in Kotlin
Concurrency pattern in KotlinConcurrency pattern in Kotlin
Concurrency pattern in KotlinThao Huynh Quang
 
Observability and its application
Observability and its applicationObservability and its application
Observability and its applicationThao Huynh Quang
 
Android Reverse Engineering
Android Reverse EngineeringAndroid Reverse Engineering
Android Reverse EngineeringThao Huynh Quang
 

More from Thao Huynh Quang (16)

2021-03-08-telegram-vs-signal.pdf
2021-03-08-telegram-vs-signal.pdf2021-03-08-telegram-vs-signal.pdf
2021-03-08-telegram-vs-signal.pdf
 
Consensus and Raft Algorithm in Distributed System
Consensus and  Raft Algorithm in Distributed SystemConsensus and  Raft Algorithm in Distributed System
Consensus and Raft Algorithm in Distributed System
 
Consensus and Raft algorithm (Vietnamese version)
Consensus and Raft algorithm (Vietnamese version)Consensus and Raft algorithm (Vietnamese version)
Consensus and Raft algorithm (Vietnamese version)
 
Kotlin Introduction with Android applications
Kotlin Introduction with Android applicationsKotlin Introduction with Android applications
Kotlin Introduction with Android applications
 
Git Introduction with illustrations
Git Introduction with illustrationsGit Introduction with illustrations
Git Introduction with illustrations
 
Android Jetpack: Room persistence library
Android Jetpack: Room persistence libraryAndroid Jetpack: Room persistence library
Android Jetpack: Room persistence library
 
Android Performance Tips
Android Performance TipsAndroid Performance Tips
Android Performance Tips
 
Kubernetes and service mesh application
Kubernetes  and service mesh applicationKubernetes  and service mesh application
Kubernetes and service mesh application
 
Blockchain introduction
Blockchain introductionBlockchain introduction
Blockchain introduction
 
Concurrency pattern in Kotlin
Concurrency pattern in KotlinConcurrency pattern in Kotlin
Concurrency pattern in Kotlin
 
Observability and its application
Observability and its applicationObservability and its application
Observability and its application
 
GraphQL in Android
GraphQL in AndroidGraphQL in Android
GraphQL in Android
 
Android GRPC
Android GRPCAndroid GRPC
Android GRPC
 
Android Reverse Engineering
Android Reverse EngineeringAndroid Reverse Engineering
Android Reverse Engineering
 
nosql
nosqlnosql
nosql
 
android deep linking
android deep linkingandroid deep linking
android deep linking
 

Recently uploaded

Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Incrobinwilliams8624
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesSoftwareMill
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfBrain Inventory
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadIvo Andreev
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyRaymond Okyere-Forson
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.Sharon Liu
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdfMeon Technology
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?AmeliaSmith90
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxJoão Esperancinha
 
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageSales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageDista
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIIvo Andreev
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionsNirav Modi
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...OnePlan Solutions
 
Webinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptWebinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptkinjal48
 

Recently uploaded (20)

Salesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptxSalesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptx
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Inc
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retries
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdf
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in Trivandrum
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and Bad
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human Beauty
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdf
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptx
 
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageSales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AI
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspections
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
 
Webinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptWebinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.ppt
 

Kafka: All an engineer needs to know