Class Diagrams¶
Detailed OOP structure for each major subsystem. Models the target architecture: all provider interfaces include planned implementations, all repositories reflect the correct schema, and the design pattern catalog shows the complete factory roster (ADR-0008).
01 — Backend Application Layer (FastAPI)¶
Pydantic models with validation constraints, repository classes with correct column types (JSONB, paginated sessions), service layer, FastAPI routers with full endpoint signatures, CORS middleware, rate limiting on all relevant routes, and dependency injection wiring.

02 — LangGraph Chain Pipeline¶
All 8 LangGraph nodes, MovieFinderGraph orchestrator, singleton service dependencies (ADR-0008), PostgresSaver persistent checkpointer (ADR-0007), and shared MovieFinderState with total=True.

03 — RAG Ingestion Pipeline (Target Architecture)¶
Full provider roster per ADR-0008 and Issues #33, #42:
- Embedding:
OpenAIEmbeddingProvider,AnthropicEmbeddingProvider,OllamaEmbeddingProvider,SentenceTransformerEmbeddingProvider - Vector store:
QdrantVectorStore,PineconeVectorStore,WeaviateVectorStore— all withenv_collection_name()for Issue #14 isolation - Chunking (Issue #31):
FixedSizeChunker,SemanticChunker,SentenceBasedChunker - Factories:
EmbeddingProviderFactory,VectorStoreFactory,ChunkingStrategyFactory IngestionMetricswithto_gha_summary()for Issue #29

04 — OOP & Design Pattern Catalog¶
Complete design pattern reference across all subsystems:
- Strategy (×4): Embedding providers, LLM providers, vector store providers, chunking strategies
- Factory (×4):
LLMProviderFactory,EmbeddingProviderFactory,VectorStoreFactory,ChunkingStrategyFactory - Repository:
BaseRepositoryhierarchy (User, Session, Message, RefreshToken) - Adapter:
IMDbApiClient→MovieMetadataSource - Dependency Injection: FastAPI
Depends()chain for singleton providers - State Machine:
MovieFinderStateTypedDict withtotal=True

05 — Angular 21 Frontend Components & Services¶
TypeScript domain interfaces, AuthService / ChatService facade layer with Signals, AuthInterceptor, TokenRefreshInterceptor, AuthGuard / GuestGuard, smart components (own services), and dumb components (@Input() only).
