Skip to main content

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_id and every foreign key is composite with it. To keep the diagrams readable, tenant_id is 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.


10. Field force, timesheets, LMS and engagement​

10.1 Field force (FFM)​

10.2 Timesheets (TSM)​

10.3 Learning (LMS)​

10.4 Engagement (ENG) and reporting (RPT)​