# java-techie-jt/kafka-consumer-example architecture

> Architecture diagram of the GitHub repository java-techie-jt/kafka-consumer-example, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/java-techie-jt/kafka-consumer-example
- Repository: https://github.com/java-techie-jt/kafka-consumer-example

## Overview

This small Spring Boot application consumes JSON Customer events from Kafka topic `javatechie-demo` and logs each received customer. Startup creates the Spring context; Kafka consumer configuration supplies the broker and deserializers, while Spring Kafka dispatches deserialized events to the annotated listener. The README documents no additional product capabilities, and the supplied source is sufficient to map this single runtime path.

Main entry points: [`src/main/java/com/javatechie/config/KafkaConsumerConfig.java`](https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/config/KafkaConsumerConfig.java) (Consumer configuration), [`src/main/java/com/javatechie/consumer/KafkaMessageListener.java`](https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/consumer/KafkaMessageListener.java) (Message listener), [`src/main/java/com/javatechie/KafkaConsumerExampleApplication.java`](https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/KafkaConsumerExampleApplication.java) (Application startup), [`src/main/java/com/javatechie/dto/Customer.java`](https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/dto/Customer.java) (Customer event)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Application runtime"]
  node_app["Application startup"]
  node_customer["Customer event<br/>[Customer.java]"]
  node_logs["Application logs"]
end

subgraph group_kafka["Kafka consumption"]
  node_config["Consumer configuration"]
  node_consumer_config["Consumer properties"]
  node_consumer_factory["Consumer factory"]
  node_listener_factory["Listener container factory"]
  node_listener["Message listener"]
end

node_producer(("Event producer"))
node_broker["Kafka broker"]

node_producer -->|"publishes events"| node_broker
node_app -->|"starts context"| node_config
node_config -->|"defines properties"| node_consumer_config
node_config -->|"creates factory"| node_consumer_factory
node_consumer_factory -->|"reads properties"| node_consumer_config
node_config -->|"creates container factory"| node_listener_factory
node_listener_factory -->|"sets consumer factory"| node_consumer_factory
node_broker -->|"delivers topic events"| node_listener
node_listener -->|"accepts deserialized event"| node_customer
node_listener -->|"logs customer"| node_logs

click node_app "https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/KafkaConsumerExampleApplication.java"
click node_config "https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/config/KafkaConsumerConfig.java"
click node_consumer_config "https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/config/KafkaConsumerConfig.java"
click node_consumer_factory "https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/config/KafkaConsumerConfig.java"
click node_listener_factory "https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/config/KafkaConsumerConfig.java"
click node_listener "https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/consumer/KafkaMessageListener.java"
click node_customer "https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/dto/Customer.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_customer,node_logs toneBlue
class node_config,node_consumer_config,node_consumer_factory,node_listener_factory,node_listener toneAmber
class node_producer,node_broker toneIndigo
```

## Components

### Application runtime

- [Application startup](https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/KafkaConsumerExampleApplication.java): `src/main/java/com/javatechie/KafkaConsumerExampleApplication.java`
- [Customer event](https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/dto/Customer.java): `src/main/java/com/javatechie/dto/Customer.java`
- **Application logs**

### Kafka consumption

- [Consumer configuration](https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/config/KafkaConsumerConfig.java): `src/main/java/com/javatechie/config/KafkaConsumerConfig.java`
- [Consumer properties](https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/config/KafkaConsumerConfig.java): `src/main/java/com/javatechie/config/KafkaConsumerConfig.java`
- [Consumer factory](https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/config/KafkaConsumerConfig.java): `src/main/java/com/javatechie/config/KafkaConsumerConfig.java`
- [Listener container factory](https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/config/KafkaConsumerConfig.java): `src/main/java/com/javatechie/config/KafkaConsumerConfig.java`
- [Message listener](https://github.com/java-techie-jt/kafka-consumer-example/blob/main/src/main/java/com/javatechie/consumer/KafkaMessageListener.java): `src/main/java/com/javatechie/consumer/KafkaMessageListener.java`

### Other components

- **Event producer**
- **Kafka broker**

## Connections

- Event producer → Kafka broker: publishes events
- Application startup → Consumer configuration: starts context
- Consumer configuration → Consumer properties: defines properties
- Consumer configuration → Consumer factory: creates factory
- Consumer factory → Consumer properties: reads properties
- Consumer configuration → Listener container factory: creates container factory
- Listener container factory → Consumer factory: sets consumer factory
- Kafka broker → Message listener: delivers topic events
- Message listener → Customer event: accepts deserialized event
- Message listener → Application logs: logs customer
