Modulaire Monoliet & Agnostische Architectuur
1. Architectuuroverzicht
CKBA wordt een modulaire monoliet binnen een containerized omgeving zonder Kubernetes. Het systeem is volledig agnostisch voor infrastructuur- en observability-componenten en moet eenvoudig uitbreidbaar zijn.
- Core-functionaliteit: AI-gestuurde kennisbank met documentverwerking en retrieval.
- LLM-abstraction layer: Initieel ondersteuning voor Llama of Mistral, later uitbreidbaar met API-integraties zoals OpenAI.
- Transport & Security: TLS wordt afgehandeld via een load balancer, API-gateway of reverse proxy.
- Opslag: Geen versleutelde opslag, focus op performance en snelle data-access.
- Observability: OpenTelemetry voor logging en tracing, zonder vendor lock-in.
- Geen caching in de applicatie zelf, zodat de infrastructuur dit kan afhandelen.
2. Technologie Stack
Backend:
- Taal: Python (FastAPI voor API-management)
- Containerization: Docker (zonder Kubernetes)
- Task Processing: Celery met Redis of lokale queue
- Logging & Tracing: OpenTelemetry (agnostisch voor backend)
AI & Retrieval:
- Vectorstore: FAISS of Weaviate
- Hybrid Search: SQL (PostgreSQL) + Vector Search (FAISS/Weaviate) + GraphDB (ArangoDB of Neo4j)
- LLM Abstraction Layer: Flexibele integratie met lokale en cloud-gebaseerde modellen
Deployment & Security:
- Reverse Proxy / API Gateway: Traefik of Nginx (voor TLS offloading)
- Secrets Management: Vault of ENV-variabelen
- Authentication: OAuth2/JWT (agnostisch per implementatie)
3. Stappenplan Implementatie
Fase 1: Basisstructuur & Containerization
Fase 2: AI-Integratie & Retrieval
Fase 3: Observability & Performance Optimalisatie
Fase 4: Abstractielaag uitbreiden & Multi-LLM ondersteuning
4. Toekomstige uitbreidingen
- Multi-tenant implementatie zonder Kubernetes, maar met container-gebaseerde isolatie.
- AI-model finetuning per klant/sector met LoRA of adapters.
- Verbeterde hybrid search met semantische chunking en query expansion.
🚀 Met dit ontwerp wordt CKBA een schaalbare, modulaire en volledig agnostische AI-kennisbank!