Apache Kafka in 1 hour for C# Developers - Guilherme Ferreira - NDC London 2023

Apache Kafka in 1 hour: Essential concepts, features, and best practices for C# developers, covering distributed streaming, event-driven architectures, and scalability.

Key takeaways
  • Apache Kafka is a distributed streaming platform for building real-time data pipelines and event-driven architectures.
  • There is no concept of data types in Kafka; it works with binary data.
  • To avoid mistakes and misunderstandings, developers should use Kafka Flow, which provides serialization and deserialization of messages.
  • Kafka Flow also offers a multi-thread consumer and preserves order, making it efficient for event-driven architectures.
  • The concept of partitions and topics is essential in Kafka; partitions are divided among brokers, and topics are defined by the producer and consumer.
  • Topics are essentially distributed files that are appended to, providing scalability and fault tolerance.
  • Kafka has concepts like first message delivery, message key, and offset, which are essential to understand when building with Kafka.
  • Kafka Flow offers features like batch processing, error handling, and precision control, making it a useful library for developers.
  • Kafka is not just a queue; it’s a distributed messaging system designed for event-driven architectures, providing efficiency and scalability.
  • Consumers can be multiple in Kafka, and they can consume from multiple topics, providing flexibility.
  • To avoid data loss, Kafka has a concept of at least once message delivery and provides recovery mechanisms.
  • The speaker shares his experience with building an event-driven architecture using Kafka and notes the importance of using Kafka Flow for serialization and deserialization.