Skip to content
- Multi-tenant isolation — every business row carries a tenant id; PostgreSQL row-level security is the second enforcement layer (fails closed).
- Modular monolith — four bounded contexts (
iam, catalog, reconciliation, integrations) as separate PostgreSQL schemas; no cross-schema FKs/JOINs.
- Transactional outbox — business writes + events in one transaction; a relay publishes typed canonical events (no catch-all types).
- Event schema registry — versioned event types with a deprecation (Sunset) header mechanism (see Event taxonomy).
- Read-through projection cache — 360/list reads served fast, invalidated on every emit, with staleness headers.
- Full-text search — generated
tsvector + GIN index with relevance ranking.
- Resilience — per-connector circuit breakers, DLQ with replay/discard, outbox→DLQ handoff after repeated failures, nightly raw-event compaction.
- Observability — structured logs, request-scoped trace IDs (
X-Request-ID), RED metrics endpoint.
- Security baseline — bcrypt password hashing, hashed API/refresh tokens, per-IP rate limiting, secret masking in API output, TLS in transit.
- Backups — automated daily
pg_dump with retention.
- Entity-resolution cache — Redis-cached catalog resolution (5-min TTL) on the ingestion hot path.