A brokerage grows by launching brands. Each new brand targets a different market, regulator or audience, and the commercial instinct is to treat it as a new business. Technically, that instinct produces a fork: a copied codebase, a separate database, and a support burden that multiplies with every launch.
The fork is invisible until it is expensive
The first clone is manageable. The second is annoying. By the third, every compliance change has to be applied three times, and they will be applied three slightly different ways. The cost is not the duplication itself — it is the divergence, because now nobody can state with confidence what the current rule is.
Make brand a column, not a deployment
The fix is a modelling decision made early: the brand is a first-class dimension of the data model. Every client, account, order and ledger entry belongs to a brand. Operations staff are granted access per brand. Reporting can then be read per brand or across all of them.
-- Brand is a dimension on the entities that need it
clients (id, brand_id, ...)
accounts (id, brand_id, client_id, ...)
orders (id, brand_id, account_id, ...)
ledger_entries (id, brand_id, account_id, ...)
-- Staff access is many-to-many, not a single column
staff_brand_access (staff_id, brand_id, role)Once this exists, a new brand is a row, a theme and a set of configuration. It is not an engineering project.
Separate behaviour from presentation
The same discipline applies in the client-facing application. Placing, modifying and closing an order must behave identically on every brand — a trader moving between platforms should not have to relearn the mechanics. What legitimately differs is typography, colour, copy, default instruments and layout emphasis.
- Shared: order state machine, validation, P&L calculation, error semantics.
- Per-brand: theme tokens, copy, default watchlists, marketing pages, legal text.
- Never per-brand: what a 'rejected order' means, or how a fee is computed.
If a correctness fix has to be applied more than once, the brand was modelled in the wrong layer.
What this buys you at the fourth brand
Launching brand four becomes a commercial exercise rather than an engineering one: theming, configuration, and the regulatory paperwork for the new market. The operations team stays the same size, and the compliance answer is one rule enforced in one place.
That is the real return. Not the engineering saved on launch four, but the fact that nobody has to answer whether brand two has the current rule.
