All systems
Platform engineeringOur own productOngoing — in production

One identity layer under seven products

Empire Core

A shared business core that gives seven separate brand applications one customer identity, one permission model and one audit trail — without any of them sharing a database schema by accident.

This is a product Codnov built and operates, not work delivered for an external client. We label it that way because the engineering is what we are asking you to judge, and you should know exactly whose problem it solved.

01 — The problem

Seven products grown independently each had their own users table, their own idea of a role and their own definition of a customer. The same person existed seven times, permissions could not be reasoned about across brands, and any cross-brand feature meant a bespoke integration between two services that did not trust each other.

02 — What we built

We built a core service that owns identity, organisations, roles and consent, and had the brand services adopt it at pinned versions so an upgrade is a deliberate act rather than a surprise. Records carry an organisation identifier and queries are scoped to the caller's organisation at the ORM layer, so tenant isolation is a property of the data-access path rather than something each endpoint must remember. Mutating operations on core business records write an audit entry with a server-side timestamp, the acting user, the entity and a diff.

03 — What is verifiable

Services
7
Brand APIs on the shared core
Isolation
ORM-level
Scoping in the data-access path, not per endpoint
Roles
Single model
One permission model across brands

Each figure above is reproducible from the repository or the live configuration. If you are running a technical review and want the command that produces one of them, ask and we will send it.

04 — Stack

FastAPISQLAlchemyPostgreSQLRedisAlembic