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

Software architecture for high traffic website
Software architecture for high traffic websiteSoftware architecture for high traffic website
Software architecture for high traffic websiteTung Nguyen Thanh
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcachedJurriaan Persyn
 
Building a fully managed stream processing platform on Flink at scale for Lin...
Building a fully managed stream processing platform on Flink at scale for Lin...Building a fully managed stream processing platform on Flink at scale for Lin...
Building a fully managed stream processing platform on Flink at scale for Lin...Flink Forward
 
Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources confluent
 
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdService Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdKai Wähner
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using KafkaKnoldus Inc.
 
Disaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache KafkaDisaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache Kafkaconfluent
 
Grokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database clusterGrokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database clusterGrokking VN
 
Reactive Programming In Java Using: Project Reactor
Reactive Programming In Java Using: Project ReactorReactive Programming In Java Using: Project Reactor
Reactive Programming In Java Using: Project ReactorKnoldus Inc.
 
Apache HBase Performance Tuning
Apache HBase Performance TuningApache HBase Performance Tuning
Apache HBase Performance TuningLars Hofhansl
 
Learning Rust the Hard Way for a Production Kafka + ScyllaDB Pipeline
Learning Rust the Hard Way for a Production Kafka + ScyllaDB PipelineLearning Rust the Hard Way for a Production Kafka + ScyllaDB Pipeline
Learning Rust the Hard Way for a Production Kafka + ScyllaDB PipelineScyllaDB
 

What's hot (20)

Kafka 101
Kafka 101Kafka 101
Kafka 101
 
Envoy and Kafka
Envoy and KafkaEnvoy and Kafka
Envoy and Kafka
 
Software architecture for high traffic website
Software architecture for high traffic websiteSoftware architecture for high traffic website
Software architecture for high traffic website
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
Building a fully managed stream processing platform on Flink at scale for Lin...
Building a fully managed stream processing platform on Flink at scale for Lin...Building a fully managed stream processing platform on Flink at scale for Lin...
Building a fully managed stream processing platform on Flink at scale for Lin...
 
Apache NiFi Crash Course Intro
Apache NiFi Crash Course IntroApache NiFi Crash Course Intro
Apache NiFi Crash Course Intro
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources Automate Your Kafka Cluster with Kubernetes Custom Resources
Automate Your Kafka Cluster with Kubernetes Custom Resources
 
YARN High Availability
YARN High AvailabilityYARN High Availability
YARN High Availability
 
ELK Stack
ELK StackELK Stack
ELK Stack
 
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdService Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
 
Kafka 101
Kafka 101Kafka 101
Kafka 101
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using Kafka
 
Disaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache KafkaDisaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache Kafka
 
Grokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database clusterGrokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database cluster
 
Reactive Programming In Java Using: Project Reactor
Reactive Programming In Java Using: Project ReactorReactive Programming In Java Using: Project Reactor
Reactive Programming In Java Using: Project Reactor
 
Apache ZooKeeper
Apache ZooKeeperApache ZooKeeper
Apache ZooKeeper
 
Apache HBase Performance Tuning
Apache HBase Performance TuningApache HBase Performance Tuning
Apache HBase Performance Tuning
 
Learning Rust the Hard Way for a Production Kafka + ScyllaDB Pipeline
Learning Rust the Hard Way for a Production Kafka + ScyllaDB PipelineLearning Rust the Hard Way for a Production Kafka + ScyllaDB Pipeline
Learning Rust the Hard Way for a Production Kafka + ScyllaDB Pipeline
 
RabbitMQ & Kafka
RabbitMQ & KafkaRabbitMQ & Kafka
RabbitMQ & Kafka
 

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 Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsAraf Karsh Hamid
 
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
 

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 Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
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
 

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

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 

Recently uploaded (20)

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 

Kafka: All an engineer needs to know