Skip to content
SR Web Studio

A Second Swoogo Multi-Tenant Platform, Built on Database-Per-Tenant Isolation by Design

A second Swoogo multi-tenant platform for institutional clients, built on database-per-tenant isolation instead of a shared schema — a deliberate architectural choice.

Browser mockup of an admin dashboard listing five university tenant accounts, each with its own isolated-database badge and integration tags.
Illustration for this case study. Names and details are placeholders.

The problem

Universities don’t treat data isolation the way a typical event client does. Compliance and data-separation expectations run higher, and a shared-schema, shared-database multi-tenant model doesn’t satisfy those expectations as cleanly as giving each client its own physically separate database. The agency needed a second multi-tenant platform for exactly that group — five clients, higher-education-leaning. Stronger isolation mattered more here than the convenience of one shared database.

The approach / solution

  • Each of the five client accounts got its own fully separate PostgreSQL database in a NestJS + TypeORM backend, with one routing middleware layer resolving the right connection per incoming request. That’s the textbook “isolate by database” multi-tenant pattern, chosen deliberately as the opposite of the shared-database approach on the larger sibling platform.
  • One client’s Swoogo registration data connects to both a student information system and an enterprise CRM, plus a student task-management tool, with per-student custom field mapping and PDF file management built on top.
  • For another client, most of our Swoogo integrations pull registration data in — this one also pushes it out, via an outbound webhook pipeline that feeds a third-party attendee-engagement platform (Jublia) as registrations happen.
  • Per-event Apple/Google Wallet customization for another client, with colors and timing configurable per event, not fixed to one design across the board.
  • Another client’s Swoogo data connects to a CRM platform, with registration field mapping alongside it.
  • A fifth client came onboard using the same tenant-provisioning pattern — API-key storage and scaffolding — even before its full integration logic was built out. That shows the onboarding process repeats cleanly across clients, without needing to be reinvented each time.
  • The integration runs purely against Swoogo’s public REST API. No browser-automation layer here — a more conventional build than the Puppeteer-based session-automation engine on the sibling platform.

Outcome / result

The agency now runs two live multi-tenant Swoogo platforms on two different isolation models: shared-database for the larger 33-client system, database-per-tenant for this five-client system. Each pattern was matched to what its own situation actually needed. This one has no browser-automation layer of its own, making it the more conventional of the two builds — a straightforward, fully API-driven system that extends the same Swoogo-integration skillset into higher-education and institutional territory, past the events-and-associations space where most of our other work sits.

Why it matters for enterprise event-tech

Multi-tenancy isn’t one trick, and here’s the proof: a shared-database system and a database-per-tenant system, built for the same agency, side by side. That combination tells a stronger architecture story than either platform would alone. The higher-education integrations on this one — student information systems, CRM, task management — also stretch the pitch past event-tech alone, into adjacent institutional and SIS integration work.

Related service

Swoogo middleware and admin dashboard

Weighing shared-database versus database-per-tenant for your own multi-tenant build? Let’s talk it through.