Home All services
Start a project → Call Now

SaaS development company in India

Build one product for many customers — and keep their data apart.

We build SaaS products and MVPs (minimum viable products: first versions you can put in front of customers) that many customers use at once. A tenant is usually one customer. We help you choose how each tenant's data is stored and kept apart, then enforce that choice in the database, not just at the login screen.

  • Tenancy settled early
  • Isolation enforced in the database
  • Security review before launch
  • AWS Prescriptive Guidance, PostgreSQL decision matrix
  • AWS Well-Architected SaaS Lens (April 4, 2023)
  • PostgreSQL 18 documentation, 5.9
  • Azure Architecture Center, tenancy models
  • OWASP ASVS 5.0.0
Illustration: one app window joined by thin lines to four identical glass bell jars, each holding its own small database, standing for one product that keeps every customer's data separate

In brief

What it is
SaaS and MVP development for products that many customers share. With you, we choose the tenancy model (how each customer's data is stored and kept apart), then build it into the database.
Why it matters
The choice comes early, and Microsoft warns that switching to a different model later is sometimes costly. And a login screen on its own does not stop one customer's data from reaching another.
What you get
A tenancy model chosen with you and backed by published AWS, Microsoft and PostgreSQL guidance; isolation built into the database to suit that model (tenant IDs, row-level security rules, and tables that return nothing unless a rule allows it); and a security review before launch.

What we do

Choose the tenancy model, then build it into the data.

Three jobs, whether we're building your MVP or working in code you already have.

Choose how tenants are stored

Tell us who your customers are and whether any of them will need its own database. We base the choice on published AWS, Microsoft and PostgreSQL guidance, and show you the trade-offs before the data layer is built or changed.

Enforce it in the database

Depending on the model, we build in tenant IDs, row-level security (a database rule that returns only the current tenant's rows) and default deny, so a protected table with no rule returns no rows.

Review it before launch

Our security practice reviews our builds before launch. On a SaaS product, the question that matters most is whether one tenant can reach another tenant's data.

SaaS is part of our web and custom software work. Still deciding whether to build at all? See custom software development. If your customers already send you security questionnaires, see security and compliance for SaaS companies.

An early storage decision

Keeping customers apart starts with how data is stored.

Not with the login screen. Signing in proves who a user is. AWS's SaaS Lens says that is not the same as isolation.

Microsoft's Azure SQL Database guidance says a tenancy model sets how each tenant's data is stored. The choice generally doesn't change what your application does, but it is likely to affect the rest of the solution around it. In Microsoft's words: “Switching to a different model later is sometimes costly.”

Four ways to store tenants in PostgreSQL

PostgreSQL is the database in our published technology stack. AWS Prescriptive Guidance compares four ways to partition (split up) tenant data in it, side by side:

  • Silo. Each tenant gets its own PostgreSQL instance or cluster.
  • Bridge, by database. Each tenant gets its own database.
  • Bridge, by schema. Each tenant gets its own schema, a separate set of tables inside a shared database.
  • Pool. Each tenant gets a place in shared tables.

None of the four is right for every product. Which one fits depends on your tenants, and the comparison below shows where they differ.

AWS's PostgreSQL matrix

Compare the four storage options on five criteria.

AWS scores the options against 28 criteria. By our count, the four options get the same answer on none of them. Here are five of the rows.

Condensed by SecWiz from AWS Prescriptive Guidance's PostgreSQL decision matrix. Data isolation is only one of its 28 criteria.
CriterionSilo and both bridge optionsPool
Data isolationSilo best; bridges better, using PostgreSQL rolesWorse; needs features such as row-level security
New tenant onboarding agilitySilo very slow; bridges moderately slowFastest; minimal setup
Change deployment: scope of impactMinimal: a single tenant is affectedVery large: all tenants are affected
Tenant-level backup and recovery effortSilo least effort; bridges moderateSignificant effort; tenants share tables
Per-tenant customizationPossibleComplicated, since tenants share tables
What shared storage commits you to

For engineers: three things follow when tenants share a database. AWS and Microsoft weigh row-level security differently, as the last two show.

  • The tenant ID leads the primary key. Microsoft's split/merge tool for sharded (split across databases) multitenant Azure SQL databases needs the sharding key, typically the tenant identifier, in the schema. That identifier leads every sharded table's primary key.
  • No policy means no rows. AWS's PostgreSQL guide says the pool model requires row-level security to prevent cross-tenant access. PostgreSQL 18 documentation, section 5.9, says a table with row security enabled but no policy denies every row.
  • Identity travels with every query. Microsoft's storage guidance says row-level security needs user and tenant identity passed into the data store with every query. That can be complex to design and implement, and many multitenant solutions skip it for that reason.

How we work

We settle four questions with you, in this order.

The order is ours: a tenant has to be defined before it can be isolated.

  1. What is a tenant?

    We start by agreeing with you what a tenant is. Often it is one customer, but not always. Microsoft's Azure Architecture Center says a single customer might need to map to several tenants when its subgroups have different requirements.

  2. How is a user bound to a tenant?

    Next we settle how each signed-in user is tied to a tenant. AWS's Well-Architected SaaS Lens (April 4, 2023) sees identity as where multi-tenancy tends to begin. It asks how tenant context (the record of which tenant a request belongs to) is tied to users and applied across the architecture.

  3. Where is isolation enforced?

    Then we settle where the isolation check sits. The SaaS Lens says isolation enforcement should not be left to service developers, so where it sits is a design decision in itself.

  4. Where does the application find a tenant's data?

    Last, we settle how the application finds each tenant's data. In AWS's silo model, an application or data access layer has to map each tenant to its own PostgreSQL instance, so that mapping is part of the build.

MVP development company · Owner's decisions

What you settle as the product's owner.

These are the tenancy questions only you, as the owner, can answer. Keeping tenants apart is also a published security requirement: OWASP ASVS 5.0.0, a public application security standard, lists cross-tenant controls for multi-tenant applications as v5.0.0-8.4.1, a Level 2 requirement.

  • A dedicated database. Will a customer, contract or regulator demand one? The SaaS Lens says some high-compliance industries may require it for every tenant.
  • Restoring one tenant. Must one tenant be restorable on its own? The backup row in the table above rates the effort for each option.
  • Customization. What may tenants customize in the data model? Microsoft's storage guidance says to design for that up front.
  • Where payments data sits. Which country may a payments tenant's data sit in?
  • Processing for your customers. Does the product process a business customer's personal data on its behalf? India's DPDP Act, 2023 defines that role as a Data Processor.

Where a payments tenant's data may sit is covered for India on our PCI DSS compliance page.

The DPDP Act's Data Processor definition, and when it applies

The Digital Personal Data Protection Act, 2023 defines a Data Processor in section 2(k) as “any person who processes personal data on behalf of a Data Fiduciary”. When your product does that for a business customer, the customer is the Data Fiduciary in that definition.

The definition commenced with the Act's first tranche. The duties that follow for the customer sit in section 8, which our DPDP Act compliance page dates to May 2027.

What tenancy does not cover. Tenancy is about one customer's data against another's. Where an application checks which records one user may open, and what an API returns for a record the caller may not see, are separate questions with their own pages.

For per-user record checks, see web application development. For the status code a caller gets, see API development and integration.

FAQ

Questions about tenancy.

Login screens, separate databases, row-level security, keys and AI search. For anything else, ask us directly.

No. AWS's Well-Architected SaaS Lens says authentication and authorization are not the same as isolation, and that getting past a login screen or an API does not mean isolation is achieved. Microsoft's Azure Architecture Center says tenants sharing one deployment are typically kept apart by application code and a tenant identifier in a database.

Not necessarily. AWS's PostgreSQL decision matrix points to silo, an instance or cluster per tenant, when isolation with full control of resources is key or tenants are very large and performance-sensitive, and to pool for many tenants with less data each. Microsoft says a solution that need not scale to many tenants, or has no performance or isolation concern, is better kept simple.

No. PostgreSQL 18 documentation, section 5.9, says superusers and roles with the BYPASSRLS attribute always bypass row security, and table owners normally do too unless FORCE ROW LEVEL SECURITY is set. Whole-table operations such as TRUNCATE are not subject to it, and referential integrity checks always bypass it, so schemas and policies need care, or data can still leak indirectly (a covert-channel leak).

In AWS's PostgreSQL decision matrix, only silo, an instance or cluster per tenant, gives each tenant its own AWS KMS (Key Management Service) key for storage encryption; the bridge options and pool use one shared key. Microsoft says tenants that bring their own keys may need tenant-level encryption, which SQL Server and Azure SQL offer through Always Encrypted.

It can, if the product searches tenants' documents. Microsoft's guidance for its own search service says relevance scores are computed across the whole index rather than per tenant, so statistics such as term frequency draw on every tenant's data. Whether tenants share a retrieval index is then a tenancy decision too.

Yes, if the codebase was designed for both. Microsoft's Azure Architecture Center says code must be designed to handle multitenant and single-tenant deployments, and that allowing migration means planning how customers move to their own deployment. AWS's SaaS Lens describes its bridge model as acknowledging that SaaS businesses are not always purely silo or pool.

Let's talk

What is a tenant in your product?

Say who your customers are and whether any of them will need its own database. Project work is delivered remotely from India during business hours. We reply within one working day.