Operations
Services in Docker Compose
The defaultdocker-compose.yml starts:
apiworkerbeatpostgresredisneo4j
.env.
Container startup also waits for Postgres and runs Alembic automatically before launching the service process.
Ports
- API:
8000 - Postgres:
5432 - Redis:
6379 - Neo4j HTTP:
7474 - Neo4j Bolt:
7687
Celery schedules
The Celery beat schedule includes:hourly_cortex- every hour at minute
0
- every hour at minute
sync_graph_projection- every
300seconds
- every
Graph projection behavior
Canonical graph mutations are written to PostgreSQL and recorded in the outbox. After the canonical commit succeeds, aCMF immediately dispatches an async graph projection task for the newly created outbox events. The graph sync worker then projects:- memory nodes
- entities
- relations
- memory links
- general graph edges
Tests
Run:Process smoke test
To send 10 varied/v1/process requests against a running API:
--prefix demoto avoid reusing the default ids--timeout 30to increase request timeout
Useful sanity check
Important current behavior
/v1/processreturns immediately after enqueuing.- Read paths can abstain when evidence is weak or irrelevant.
- Read-path diagnostics are relevance-gated and do not expose unrelated raw retrieval hits.
- Snapshots only include
userandglobalmemories. - Neo4j is projection-only and can be rebuilt from canonical state.