Enterprise RAG platform built with Domain-Driven Design principles
FastAPI 0.104.1 - Web framework
LangGraph 0.2.50 - Workflow orchestration
LangSmith 0.3.45 - Observability
SQLAlchemy 2.0.23 - ORM
PostgreSQL - Primary database
FAISS 1.7.4 - Dense vectors
Elasticsearch 8.11.0 - Sparse vectors
Redis 5.0.1 - Cache/Memory
Next.js 15.3.0 - React framework
React 19.0.0 - UI library
TypeScript 5.6.3 - Type system
Vercel AI SDK 5.0.26 - AI integration
Radix UI - Accessible components
Tailwind CSS 4.1.13 - Styling
Drizzle ORM 0.34.0 - Database
ABP.io Framework - DDD framework
.NET Core - Backend
Entity Framework - ORM
Angular/Blazor - Frontend
OpenAI GPT-4
Anthropic Claude
Ollama (Local)
Admin Client App, Frontend Client App, Backend Service:
Admin Client App, Frontend Client App, Backend Service:
Admin Client App, Frontend Client App, Backend Service:
Below are several reference pages that illustrate the core architecture of the SoRag system, including retrieval, indexing, and historical documentation. Each link opens in a new tab.
Observability - LangSmith full-chain tracing
Maintainability - Node-based design
Recoverability - Checkpointer support
Testability - Independent node testing
Specialization - RAG/Chat/Integration separation
Parallelization - asyncio.gather concurrency
Extensibility - Registry mechanism
Isolation - Independent compilation
Automation - ContextVars + event listeners
Security - Database-level auto-filtering
Flexibility - Context Manager switching
Performance - Index optimization
Layered architecture - 4 clear layers
Repository pattern - Data access abstraction
Entity - Handles business logic
Based on ABP.io principles
KbKnowledgeBase
- Knowledge base containerKbSource
- Document sourcesKbChunk
- Text chunks from documentsIdxChunkEmbedding
- Vector embeddingsIdxVectorCollectionItem
- Vector DB itemsIdxSparseCollectionItem
- Sparse vectorsIdxIndexingTask
- Background indexing jobsIdxIndexingEvent
- Event trackingRetrievalConversation
- Chat sessionsRetrievalMessage
- Chat messagesMemoryItem
- Conversation memoryEntities, Aggregates, Domain Services, Repositories
Separate read and write operations for optimal performance
Distributed events using CAP pattern (Inbox/Outbox)
Abstraction layer for data access operations