Status. Proposed design only. Nothing in this vault is DG client approval. No application, service or test has been executed; every scenario is Not executed. Fees and dates are open.
Data architecture
Purpose
Entities and invariants the schema must enforce. The physical schema is not final; Data-Model is conceptual.
Source notes
Data-Model, Versions-and-State, Notifications-and-Outbox.
Entities
Company, User, Membership (company, user, role), Opportunity, Opportunity version, Expression of interest, Conversation (company pair, kind), Message, Next action; supporting records for approval, outbox, delivery attempt and audit.
Invariants the database should enforce
- One active membership per user; a company has many members.
- One active interest per respondent company per opportunity; no self-response.
- Repeated acceptance creates one discussion.
- Interest references an immutable published version; approval binds exact content and intended action.
- Assignees are active, authorised members of the relevant company.
- Outbox: unique event-recipient-channel key.
Indexes
Memberships, active opportunities, conversation participants, pending actions and job claims.
Conventions (Proposed)
UUIDv7 identifiers and expected-version columns on sensitive records (ADR-0004-UUIDv7-and-Idempotency). Migrations are versioned and reversible where feasible (Build-Test-and-Deployment).
Open decisions
Blocked by Q09: retention, deletion and audit exceptions before any live data.
Scenarios
Change history
| Date | Change |
|---|---|
| 2026-10-20 | Created (bootstrap Phase 2) |