Skip to main content
Depended on by every other module; depends on none of them. That direction is enforced by dependency-cruiser, not by convention. Spanish mirror: ../../es/modules/core/. English is authoritative.

Feature roadmap

Fourteen deliveries. Nine make F1a, because almost everything else in the suite is blocked on them.

The cut, explained

  • Catalogs first (0001) because every other table has a foreign key into them, and the is_system seeds generate the TypeScript unions the whole monorepo compiles against.
  • Audit log and job infrastructure (0005, 0007) have no dependencies and everything depends on them. They are early not because they are interesting but because nothing else can be correct without them.
  • Identity resolution (0003) is separate from contacts (0002) because storing a contact and deciding that two records are the same person are different problems with different risk: one is a schema, the other is where a false merge destroys data.
  • Consent (0004) is its own delivery, not a column on contacts, because it is history with legal weight and it is read by a module that does not own it.
  • Member identity (0009) is here rather than in loyalty because the member is a contact, and the contact belongs to core. Loyalty consumes the identity; it does not define it.