Spring Kafka Serialization Interview Questions and Answers

Master Spring Kafka Serialization with interview questions covering Serializer, Deserializer, String, JSON, Avro, Protobuf, Schema Registry, custom serializers, schema evolution, and production best practices.


Introduction

Kafka stores and transmits bytes, not Java objects.

When a producer sends a Java object, Kafka cannot understand it directly.

Likewise, when a consumer receives data from Kafka, it receives only a byte array.

To exchange meaningful information, Kafka uses Serialization and Deserialization.

Serialization converts an object into bytes.

Deserialization converts bytes back into an object.

Spring Kafka provides built-in support for multiple serialization formats and integrates with enterprise schema management solutions.


Serialization Architecture

flowchart LR

JavaObject --> Serializer

Serializer --> ByteArray

ByteArray --> Kafka

Kafka --> ByteArray2

ByteArray2 --> Deserializer

Deserializer --> JavaObject2

Q1. What is Serialization?

Answer

Serialization is the process of converting an object into a byte array before sending it to Kafka.

Example

Payment Object

↓

Serializer

↓

Bytes

Kafka stores only bytes.


Q2. What is Deserialization?

Deserialization converts Kafka bytes back into application objects.

Example

Bytes

↓

Deserializer

↓

Payment Object

Consumers always deserialize messages before business processing.


Q3. Why do we need Serialization?

Without serialization,

Kafka cannot store Java objects.

Workflow

flowchart LR

JavaObject --> Serializer

Serializer --> Kafka

Kafka --> Deserializer

Deserializer --> BusinessService

Serialization provides language-independent communication.


Q4. What serializers are commonly used?

Serializer Use Case
String Simple text
JSON REST and microservices
Avro Enterprise messaging
Protobuf High-performance APIs
ByteArray Binary payloads
Custom Domain-specific formats

The choice depends on interoperability, performance, and schema requirements.


Q5. What is JSON Serialization?

Spring Kafka commonly uses Jackson.

Producer

JsonSerializer

Consumer

JsonDeserializer

Configuration

spring.kafka.producer.value-serializer=org.springframework.kafka.support.serializer.JsonSerializer

spring.kafka.consumer.value-deserializer=org.springframework.kafka.support.serializer.JsonDeserializer

Advantages

  • Human readable
  • Easy debugging
  • REST compatibility

Disadvantages

  • Larger payload size
  • Slower than binary formats

Q6. What is Avro?

Avro is a compact binary serialization format.

Advantages

  • Smaller payloads
  • Faster serialization
  • Strong schema support
  • Schema evolution
  • Enterprise standard

Avro Flow

flowchart LR

JavaObject --> AvroSerializer

AvroSerializer --> Kafka

Kafka --> AvroDeserializer

AvroDeserializer --> JavaObject

Avro is widely used in large Kafka deployments.


Q7. What is Protobuf?

Protocol Buffers (Protobuf) is Google's binary serialization format.

Benefits

  • Very compact
  • Extremely fast
  • Cross-platform
  • Backward compatible

Compared to JSON

  • Smaller messages
  • Lower latency
  • Better throughput

Ideal for high-performance event processing.


Q8. What is Schema Registry?

A Schema Registry stores and manages message schemas.

Responsibilities

  • Version schemas
  • Validate compatibility
  • Prevent invalid messages
  • Enable schema evolution

Schema Registry

flowchart LR

Producer --> SchemaRegistry

SchemaRegistry --> Kafka

Kafka --> Consumer

Consumer --> SchemaRegistry

Commonly used with Avro and Protobuf.


Q9. What is Schema Evolution?

Schemas change over time.

Example

Version 1

id

name

Version 2

id

name

email

A Schema Registry ensures older consumers continue working.

Types of compatibility

  • Backward
  • Forward
  • Full

Schema evolution enables independent deployment of producers and consumers.


Q10. Serialization Best Practices

Prefer Avro

For enterprise Kafka platforms.


Use JSON

For smaller systems and REST integration.


Avoid Java Native Serialization

It is slow, large, and language-dependent.


Use Schema Registry

Manage schema versions safely.


Validate Schemas

Before deployment.


Banking Example

flowchart TD

PaymentObject --> AvroSerializer

AvroSerializer --> SchemaRegistry

SchemaRegistry --> Kafka

Kafka --> AvroDeserializer

AvroDeserializer --> PaymentConsumer

This ensures compact messages and safe schema evolution.


Common Interview Questions

  • What is Serialization?
  • What is Deserialization?
  • Why is Serialization required?
  • JSON vs Avro?
  • What is Protobuf?
  • What is Schema Registry?
  • What is Schema Evolution?
  • Compatibility modes?
  • Why avoid Java serialization?
  • Serialization best practices?

Quick Revision

Topic Summary
Serialization Object → Bytes
Deserialization Bytes → Object
JSON Human readable
Avro Compact binary format
Protobuf High-performance binary format
Schema Registry Schema management
Schema Evolution Version compatibility
JsonSerializer Spring JSON serializer
JsonDeserializer Spring JSON deserializer
Custom Serializer Domain-specific conversion

Serialization Lifecycle

sequenceDiagram
Application->>Serializer: Java Object
Serializer->>Kafka: Byte Array
Kafka-->>Deserializer: Byte Array
Deserializer->>Consumer: Java Object
Consumer->>BusinessService: Process

JSON vs Avro vs Protobuf

Feature JSON Avro Protobuf
Readability Excellent Poor Poor
Message Size Large Small Smallest
Performance Moderate High Very High
Schema Support Optional Built-in Built-in
Schema Evolution Limited Excellent Excellent
Human Debugging Easy Difficult Difficult
Enterprise Adoption High Very High Very High
Best Use Case REST & microservices Enterprise event streaming High-performance distributed systems

Production Example – Banking Payment Events

A banking platform publishes Payment Initiated events to Kafka.

Requirements

  • High throughput.
  • Small network payloads.
  • Backward-compatible schema changes.
  • Zero downtime deployments.

Workflow

  1. PaymentEvent is serialized using Avro.
  2. The producer registers the schema in Schema Registry.
  3. Kafka stores the compact binary message.
  4. Consumers fetch the schema using the schema ID.
  5. The Avro Deserializer reconstructs the Java object.
  6. Business services process the payment without worrying about schema versions.
@Bean
public ProducerFactory<String, PaymentEvent>
producerFactory() {

    // Avro serializer configuration

    return null;

}
flowchart LR

PaymentService --> PaymentEvent

PaymentEvent --> AvroSerializer

AvroSerializer --> SchemaRegistry

SchemaRegistry --> Kafka

Kafka --> AvroDeserializer

AvroDeserializer --> PaymentConsumer

PaymentConsumer --> PostgreSQL

Production Recommendation

Environment Recommended Format
Learning Projects JSON
Internal Microservices JSON or Avro
Large Enterprise Platforms Avro + Schema Registry
High-Frequency Trading Protobuf
Banking & Financial Systems Avro + Schema Registry

Key Takeaways

  • Kafka stores bytes, making serialization and deserialization essential for exchanging application objects.
  • Serialization converts objects into byte arrays, while deserialization reconstructs them for processing.
  • Spring Kafka provides built-in support for String, JSON, Avro, Protobuf, and custom serializers.
  • JSON is easy to read and debug but produces larger payloads.
  • Avro offers compact binary encoding, excellent performance, and built-in schema evolution, making it a preferred choice for enterprise Kafka platforms.
  • Protobuf provides the highest performance with very small message sizes and strong cross-platform support.
  • Schema Registry manages schema versions and enables safe producer and consumer evolution without breaking compatibility.
  • Selecting the appropriate serialization format has a significant impact on throughput, storage efficiency, interoperability, and long-term maintainability in event-driven systems.