# mgmmuthuganesh-ux/real-time-trade-streaming-platform architecture

> Architecture diagram of the GitHub repository mgmmuthuganesh-ux/real-time-trade-streaming-platform, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform
- Repository: https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform

## Overview

This is a Spring Boot trade-event producer/consumer demo. A client submits a trade to the producer’s `/trades` endpoint; the controller passes the event to a Kafka producer, which publishes it to `trade-events`, where the consumer listener receives it. The consumer’s logged output is the demonstrated result; no persistence or downstream trade processing is shown. The consumer implementation was not excerpted, so its internal links rely on README statements and the repository tree; future enhancements are not represented as implemented capabilities.

Main entry points: [`trade-producer-service/src/main/java/com/trading/producer/controller/TradeController.java`](https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-producer-service/src/main/java/com/trading/producer/controller/TradeController.java) (Trade API), [`trade-producer-service/src/main/java/com/trading/producer/service/TradeProducer.java`](https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-producer-service/src/main/java/com/trading/producer/service/TradeProducer.java) (Trade Publisher), [`trade-consumer-service/src/main/java/com/example/tradingconsumer/listener/TradeConsumer.java`](https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-consumer-service/src/main/java/com/example/tradingconsumer/listener/TradeConsumer.java) (Trade Listener), [`trade-producer-service/src/main/java/com/trading/producer/model/TradeEvent.java`](https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-producer-service/src/main/java/com/trading/producer/model/TradeEvent.java) (Trade Event)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ingress["Trade Ingress"]
  node_producer_app["Producer App"]
  node_trade_api["Trade API"]
  node_producer_event["Trade Event<br/>[TradeEvent.java]"]
end

subgraph group_stream["Kafka Stream"]
  node_trade_publisher["Trade Publisher<br/>[TradeProducer.java]"]
  node_kafka["Kafka Broker"]
end

subgraph group_consumer["Trade Consumption"]
  node_consumer_app["Consumer App"]
  node_trade_listener["Trade Listener<br/>[TradeConsumer.java]"]
  node_consumer_event["Consumer Event Model<br/>[TradeEvent.java]"]
end

node_client(("HTTP Client"))

node_client -->|"posts trade"| node_trade_api
node_trade_api -->|"accepts payload"| node_producer_event
node_trade_api -->|"calls publish"| node_trade_publisher
node_trade_publisher -->|"publishes event"| node_producer_event
node_trade_publisher -->|"sends to topic"| node_kafka
node_kafka -->|"delivers events"| node_trade_listener
node_trade_listener -->|"deserializes event"| node_consumer_event

click node_producer_app "https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-producer-service/src/main/java/com/trading/producer/TradeProducerServiceApplication.java"
click node_trade_api "https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-producer-service/src/main/java/com/trading/producer/controller/TradeController.java"
click node_producer_event "https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-producer-service/src/main/java/com/trading/producer/model/TradeEvent.java"
click node_trade_publisher "https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-producer-service/src/main/java/com/trading/producer/service/TradeProducer.java"
click node_consumer_app "https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-consumer-service/src/main/java/com/example/tradingconsumer/TradeConsumerServiceApplication.java"
click node_trade_listener "https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-consumer-service/src/main/java/com/example/tradingconsumer/listener/TradeConsumer.java"
click node_consumer_event "https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-consumer-service/src/main/java/com/example/tradingconsumer/Model/TradeEvent.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_producer_app,node_trade_api,node_producer_event,node_client toneBlue
class node_trade_publisher,node_kafka toneAmber
class node_consumer_app,node_trade_listener,node_consumer_event toneMint
```

## Components

### Trade Ingress

- [Producer App](https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-producer-service/src/main/java/com/trading/producer/TradeProducerServiceApplication.java): `trade-producer-service/src/main/java/com/trading/producer/TradeProducerServiceApplication.java`
- [Trade API](https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-producer-service/src/main/java/com/trading/producer/controller/TradeController.java): `trade-producer-service/src/main/java/com/trading/producer/controller/TradeController.java`
- [Trade Event](https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-producer-service/src/main/java/com/trading/producer/model/TradeEvent.java): `trade-producer-service/src/main/java/com/trading/producer/model/TradeEvent.java`

### Kafka Stream

- [Trade Publisher](https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-producer-service/src/main/java/com/trading/producer/service/TradeProducer.java): `trade-producer-service/src/main/java/com/trading/producer/service/TradeProducer.java`
- **Kafka Broker**

### Trade Consumption

- [Consumer App](https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-consumer-service/src/main/java/com/example/tradingconsumer/TradeConsumerServiceApplication.java): `trade-consumer-service/src/main/java/com/example/tradingconsumer/TradeConsumerServiceApplication.java`
- [Trade Listener](https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-consumer-service/src/main/java/com/example/tradingconsumer/listener/TradeConsumer.java): `trade-consumer-service/src/main/java/com/example/tradingconsumer/listener/TradeConsumer.java`
- [Consumer Event Model](https://github.com/mgmmuthuganesh-ux/real-time-trade-streaming-platform/blob/main/trade-consumer-service/src/main/java/com/example/tradingconsumer/Model/TradeEvent.java): `trade-consumer-service/src/main/java/com/example/tradingconsumer/Model/TradeEvent.java`

### Other components

- **HTTP Client**

## Connections

- HTTP Client → Trade API: posts trade (evidence: `README.md`)
- Trade API → Trade Event: accepts payload (evidence: `trade-producer-service/src/main/java/com/trading/producer/controller/TradeController.java`)
- Trade API → Trade Publisher: calls publish (evidence: `trade-producer-service/src/main/java/com/trading/producer/controller/TradeController.java`)
- Trade Publisher → Trade Event: publishes event (evidence: `trade-producer-service/src/main/java/com/trading/producer/service/TradeProducer.java`)
- Trade Publisher → Kafka Broker: sends to topic (evidence: `trade-producer-service/src/main/java/com/trading/producer/service/TradeProducer.java`)
- Kafka Broker → Trade Listener: delivers events (evidence: `README.md`)
- Trade Listener → Consumer Event Model: deserializes event (evidence: `README.md`)
