System Architecture
graph TB
subgraph "Client Layer"
User[User]
Mobile[Mobile App - Phase 2]
Web[Web App - Vercel]
Console[Admin Console<br/>console.vows.social]
end
subgraph "Modal Platform (Python ML)"
API[FastAPI Microservices]
Orchestrator[Orchestrator<br/>Thompson Sampling ✓]
LangGraph[LangGraph<br/>Multi-Agent Coord]
Embeddings[SigLIP 2 / Jina CLIP<br/>GPU Embeddings]
TwoTower[Two-Tower Model<br/>PyTorch]
RLlib[Ray RLlib<br/>Multi-Agent PPO]
LangSmith[LangSmith<br/>Observability]
end
subgraph "Data Layer"
Qdrant[(Qdrant Vector DB)]
Supabase[(Supabase PostgreSQL)]
ModalVolume[(Modal Volumes<br/>Model Checkpoints)]
end
subgraph "Discovery Layer"
Instagram[Instagram Curators]
DiscoveryAgent[Discovery Agent]
end
User --> Mobile
User --> Web
User --> Console
Mobile --> API
Web --> API
Console --> API
API --> Orchestrator
Orchestrator --> LangGraph
LangGraph --> DiscoveryAgent
Orchestrator --> Embeddings
Embeddings --> TwoTower
TwoTower --> Qdrant
RLlib --> LangGraph
RLlib --> ModalVolume
LangSmith --> LangGraph
LangSmith --> RLlib
Orchestrator --> Supabase
Instagram --> DiscoveryAgent
DiscoveryAgent --> Supabase
DiscoveryAgent --> Qdrant
Component Descriptions
Client Layer
- User: End users planning their wedding
- Web App: Next.js web application (Vercel)
- Admin Console: Manual content curation dashboard (Phase 1a)
- Mobile App: Flutter mobile application (Phase 2)
- FastAPI: RESTful API endpoints (async)
- Orchestrator: Thompson Sampling for feed ranking (KEPT - core algorithm)
- LangGraph: Multi-agent coordination framework
- GPU Embeddings: SigLIP 2 / Jina CLIP v2 for multimodal understanding
- Two-Tower Model: User & content dual-encoder (PyTorch)
- Ray RLlib: Multi-Agent PPO training (A100 GPU, scheduled)
- LangSmith: Agent observability and tracing (5K traces/month free)
Data Layer
- Qdrant: Vector database for embeddings (GPU-generated)
- Supabase: PostgreSQL for user data and interactions
- Modal Volumes: Persistent storage for model checkpoints
Discovery Layer
- Instagram Curators: Regional wedding content accounts
- Discovery Agent: Content discovery and quality filtering