Repository navigation
Architecture
Saadamjad edited this page Jul 14, 2026
·
1 revision
| Layer | Technology |
|---|---|
| API | Python, FastAPI |
| Database | PostgreSQL + pgvector |
| Vector search | Qdrant (HNSW) |
| Cache | Redis |
| Dashboard | Next.js 14 |
| Auth | Passwordless OTP + API keys (SHA-256 hash) |
tenants
├── users (email login)
├── api_keys (optional agent_id scope)
├── agents (agent_id per tenant)
└── events (append-only, with embedding + parent_id)
-
event_id— UUID primary key -
agent_id— which agent emitted this -
event_type— e.g.user_message,tool_call -
data— JSON payload -
parent_event_id— causal link forwhy() -
session_id— group related turns -
embedding— vector(1536) for semantic search -
sequence_no— monotonic ordering
agent_id on key |
Behavior |
|---|---|
Set (e.g. my-bot) |
Key only works for that agent |
| NULL (tenant-wide) | Key works for any agent name |
Client → POST /v1/events
→ verify API key (update last_used)
→ assert agent scope (403 if mismatch)
→ upsert agents row
→ insert events row
→ generate embedding
→ upsert Qdrant vector
→ return event_id
Each event can set parent_id to the event that caused it. GET /v1/events/{id}/why walks the tree recursively.
Internet
→ nginx (db.zizka.ai)
→ /v1/* → FastAPI :8000
→ /* → Next.js dashboard :3001
→ Postgres, Redis, Qdrant (private)
ZizkaDB/
core/ # FastAPI API
dashboard/ # Next.js UI
sdk/python/ # zizkadb-sdk
sdk/typescript/ # zizkadb-sdk (npm)
mcp/ # zizkadb-mcp
infra/ # Docker, deploy scripts
wiki/ # GitHub wiki source (this folder)
- API, dashboard, Python/TS SDKs: AGPL-3.0
- MCP server: MIT
- Getting Started
- CONNECT.md — connect your stack
- Worked example 01
- Agents and API Keys
- Troubleshooting