flowchart LR A[run.py] --> B[FastAPI app in app/main.py] subgraph Runtime[Startup and background runtime] direction TB C[Startup model preload] D[Outbox worker thread] E[Event consumer thread] end subgraph Routes[API surface] direction TB F[Pipeline routes] G[Strategy routes] H[Graph routes] I[Persona routes] J[Simulation routes] K[MOHP routes] L[Analytics routes] M[Stats and admin routes] end subgraph Services[Core services] direction TB N[Redis outbox] O[Redis Streams or RabbitMQ] P[Neo4j ingestion] Q[Campaign vectorizer] R[GMM clustering] S[Heatmap scoring] T[RAG optimizer] U[Neo4j graph queries] V[Redis session storage] W[Ollama responses] X[D-ID WebRTC stream] Y[Hume prosody] Z[Rule-based or LLM objection analysis] AA[ChromaDB campaign memory] end B --> Runtime B --> Routes D --> N --> O E --> P F --> N G --> Q G --> R G --> S G --> T --> AA H --> U I --> U J --> V J --> W J --> X J --> Y K --> Z L --> V