Skip to content
Balkan Tecnologia

SaaS back-end with separated tenants, plans and limits

We build the back-end of SaaS products that serve many companies from one platform: data separated by customer, plans, usage limits and metering of what each one consumes.

A mint-green thread running underneath a blank white slab the size of a phone.

Who it's for

For software companies whose product has grown, yet every new customer still needs its own installation.

What it solves

  • Every new customer needs a copy of the system and an afternoon of setup.
  • One forgotten filter in a query can show one customer's data to another.
  • The plans exist on the pricing page, but the system cannot enforce them.
  • One large customer slows the system down for everyone else.
  • Nobody knows how much each customer uses until the cloud bill arrives.

What we do

Tenancy model
Shared database, schema per customer or database per customer, chosen by risk and cost.
Data isolation
Every query is filtered by customer in the database itself, with row-level security.
Plans and limits
Features, user counts and quotas for each plan enforced by the system itself.
Usage metering
Each customer's consumption is counted and ready for billing and checking.
Heavy customers kept in check
Request quotas and separate queues, so one heavy customer does not delay the rest.
Administration API
Create, suspend, change plan or export a customer through an API, without touching the database directly.

What you get

  • A documented tenancy model, with the decision and reasons on record
  • Automated tests that try to read another customer's data and must fail
  • Per-customer usage metering, ready to export for billing
  • An administration API for customers, plans and limits
  • A migration plan, when the product already runs customers on separate installations

How we do it

  1. Assessment

    How the product serves customers today and where data gets mixed or duplicated.

  2. Model decision

    Shared or separate, weighing risk, cost and what customers require by contract.

  3. Development

    Isolation, plans, metering and administration, with tests for leaks between customers.

  4. Staged migration

    Existing customers move to the new platform in groups, with a way back.

  5. Follow-up

    Usage and performance per customer, and tuning of the limits.

Technology examples

  • PostgreSQL
  • Row-Level Security
  • Redis
  • OpenAPI
  • Kubernetes
  • OpenTelemetry

Related services

FAQ

One database per customer, or one for everyone?

It depends on risk, cost and what your customers require by contract. The two can also be combined: a shared database for most, a separate one for those who ask.

Can this be done without rewriting the product?

It depends on how the code separates customers today. Where it can, the change comes in parts: isolation first, then plans and metering. The assessment shows what can be kept.

Does subscription billing come into this?

Plans and metering sit here. Billing itself, with cycles and failed payments, is the recurring billing service.

What if a large customer demands a database of its own?

A database just for that customer, in the required cloud region, is one of the options in the model. This is decided before development, not after.