# State 006 Learning Guide

> For the complete documentation index, see [llms.txt](https://deploy-preview-472--lucky-concha-f3599f.netlify.app/llms.txt).

## Position In Learning Graph

*   Previous state(s): [005-postgres-database-replacement](https://deploy-preview-472--lucky-concha-f3599f.netlify.app/docs/learning/state-005-postgres-database-replacement.md)
*   Dotted-line parent(s): none
*   Next state(s): [007-observability-lgtm-compose](https://deploy-preview-472--lucky-concha-f3599f.netlify.app/docs/learning/state-007-observability-lgtm-compose.md)

## Convergence Metadata

*   Convergence state: `no`
*   Convergence level: `none`
*   Lineage role: `canonical`
*   Nearest previous convergence: `none`
*   Nearest next convergence: `none`

## Rendered Code

*   Generated branch: [code/generated-state-006-messaging-nats-replacement](https://github.com/finos/traderX/tree/code/generated-state-006-messaging-nats-replacement)
*   Authoring branch (spec source): [main](https://github.com/finos/traderX/tree/main)

## Code Comparison With Previous State

*   Compare against `005-postgres-database-replacement`: [code/generated-state-005-postgres-database-replacement...code/generated-state-006-messaging-nats-replacement](https://github.com/finos/traderX/compare/code%2Fgenerated-state-005-postgres-database-replacement...code%2Fgenerated-state-006-messaging-nats-replacement)

## Plain-English Code Delta

*   **Added:** Broker-backed subject contract for backend event publication/consumption.
*   **Added:** Broker-backed websocket stream path for frontend subscriptions.
*   **Changed:** Trade messaging transport changes:
*   **Changed:** from Socket.IO channels in `trade-feed`,
*   **Changed:** to NATS subjects in `nats-broker`.
*   **Changed:** Event producer/consumer client logic in trade-service, trade-processor, and frontend stream subscriber.
*   **Changed:** Frontend realtime position handling keeps baseline aggregate blotter semantics by upserting rows for existing securities.
*   **Removed:** Dedicated Socket.IO messaging service role (`trade-feed`) in target runtime topology.

## Run This State

```bash
./scripts/start-state-006-messaging-nats-replacement-generated.sh
```

## Canonical Spec Links

*   State spec pack: [/specs/messaging-nats-replacement](https://deploy-preview-472--lucky-concha-f3599f.netlify.app/specs/messaging-nats-replacement.md)
*   Architecture: [/specs/messaging-nats-replacement/system/architecture](https://deploy-preview-472--lucky-concha-f3599f.netlify.app/specs/messaging-nats-replacement/system/architecture.md)
*   Flows / topology: [/specs/messaging-nats-replacement/system/runtime-topology](https://deploy-preview-472--lucky-concha-f3599f.netlify.app/specs/messaging-nats-replacement/system/runtime-topology.md)
*   Research: [link](https://deploy-preview-472--lucky-concha-f3599f.netlify.app/specs/messaging-nats-replacement/research.md)
*   Data model: [link](https://deploy-preview-472--lucky-concha-f3599f.netlify.app/specs/messaging-nats-replacement/data-model.md)
*   Quickstart: [link](https://deploy-preview-472--lucky-concha-f3599f.netlify.app/specs/messaging-nats-replacement/quickstart.md)
*   State ADR: [link](https://deploy-preview-472--lucky-concha-f3599f.netlify.app/docs/adr/005-state-006-use-nats-for-messaging-replacement.md)
