All work

Multi-tenant platform / 2025

Raeetna

I rebuilt a church management system as a multi-tenant platform, with a separate database for each organisation and a shared control plane.

Role
Architecture & full build
Tenancy
Database per organisation
Deployed for
6,400 members
Status
Live in production
RaeetnaDatabase per organisation
Shared control plane
Organisation A
Organisation B
Organisation C
Independent offsite backups
Architecture sketchIllustrative tenant layout

The starting point

The original system served a single church. Adding another organisation meant deploying another copy. The rebuild needed to support multiple churches while keeping household, family and pastoral records separate.

The existing deployment held records for 6,400 members, 1,900 households and 1,018 families. I handled the architecture and implementation.

Separating the data

One database per organisation

Each church has its own database. A separate control plane manages provisioning, tenant records and platform state.

Routing by request host

The incoming host selects the tenant connection. Each organisation can use a custom domain without changes to application code.

Independent backups

Copies are stored at a second provider, separate from the primary infrastructure. A full restore drill recovered 23,717 documents with zero failures.

Measured results

I reduced the work done by the core analytics aggregations and measured the changes. The restore result comes from an end-to-end recovery drill.

Measured results
MeasurementBefore / scopeAfter / result
Core analytics queries1,675ms59ms
Dashboard load5.3s3.5s
Restore drill23,717 documents0 failures
members
6,400
households
1,900
families
1,018
faster core analytics
28×
Built with

React · Node.js · MongoDB · Database per tenant · Offsite backups · Custom domains

Next projectJoSam Content Hub

Have something in mind?

Tell me a little about it. I usually reply within two working days.