Entity-relationship diagrams
These diagrams show the physical tables, their key columns and their relationships. Full column lists, types and constraints are in the data dictionary; the rules behind them (UUIDv7 keys, tenant_id, composite foreign keys, effective dating, ledgers) are in the data model overview.
Reading notes:
- Every tenant-owned table has
tenant_idand every foreign key is composite with it. To keep the diagrams readable,tenant_idis shown once per table and the composite key is drawn as a single relationship. - Standard columns (
created_at,created_by,updated_at,updated_by,row_version,archived_at) are omitted. - A table from another domain appears with a few columns only, as a reference.
- Cross-module foreign keys point only upstream along the module DAG in System design. Where a reference points downstream (for example
att_period_lock.pay_period_id), it is a plain UUID without a foreign-key constraint; the dictionary marks it "soft reference".
1. Control plane (Control DB)
The control plane has its own database, so its tables have no module prefix.
2. Kernel (App DB)
Kernel tables are written by every module through the kernel services. See System design for the outbox and idempotency flows.
3. Organisation and IAM
Aligned with the ORG and IAM module specs. org_account and org_contact are the shared Account master used by FFM and TSM.
4. Core HR (EMP)
Aligned with the Core HR module spec. Onboarding, offboarding and exit-clearance items are all emp_task rows (one task engine).
5. Attendance (ATT)
Aligned with the Attendance module spec. Face profiles and kiosk devices are owned by MOB and shown here for context.
6. Leave (LVE)
Aligned with the Leave module spec.
7. Payroll (PAY)
Aligned with the Payroll module spec. pay_run_employee holds one employee's frozen input snapshot and totals for a run; pay_run_line holds one component amount. Both are immutable once the run is locked. pay_statutory_rate is global reference data (no tenant_id), imported from the control plane's statutory packs.
8. Notifications and workflow (NTF)
Aligned with the Notifications & Workflow module spec. The kernel outbox (sys_outbox_event) feeds both notifications and webhooks.
9. Claims and exit (CLM, EXT)
Aligned with the Claims and Exit module specs. Exit clearance items are emp_task rows with context = OFFBOARDING.