> saas-architecture-advisor

Advises on multi-tenant SaaS architecture decisions including tenancy models, data isolation strategies, tenant routing, and scaling patterns. Use when someone is building a SaaS product, converting single-tenant to multi-tenant, or evaluating isolation strategies. Trigger words: multi-tenant, SaaS architecture, tenant isolation, shared database, per-tenant database, row-level security, tenant routing, SaaS patterns.

fetch
$curl "https://skillshub.wtf/TerminalSkills/skills/saas-architecture-advisor?format=md"
SKILL.mdsaas-architecture-advisor

SaaS Architecture Advisor

Overview

This skill helps teams design and implement multi-tenant SaaS architectures by evaluating isolation strategies, generating tenant routing patterns, and recommending the right tradeoffs based on scale, compliance requirements, and budget constraints.

Instructions

Step 1: Gather Context

Before recommending anything, establish:

  • Scale: Expected tenant count (year 1 and year 3)
  • Tenant size: Users per tenant (range and distribution)
  • Compliance: SOC2, HIPAA, GDPR, or contractual isolation requirements
  • Stack: Database, language, framework, hosting
  • Budget: Monthly infrastructure budget
  • Data sensitivity: What kind of data tenants store
  • Customization needs: Do tenants need custom fields, workflows, or branding?

Step 2: Evaluate Tenancy Models

Present trade-offs for these models:

Shared Everything (single DB, shared tables, tenant_id column):

  • Best for: <1,000 tenants, uniform data model, no strict isolation requirements
  • Cost: Lowest ($1 DB serves all tenants)
  • Risk: Query bugs can leak data; noisy neighbor issues
  • Mitigation: Row-level security (PostgreSQL RLS), application-layer checks

Schema per Tenant (single DB, separate schemas):

  • Best for: 50-500 tenants, moderate isolation needs
  • Cost: Low (single DB instance, logical separation)
  • Risk: Migration complexity scales with tenant count; catalog bloat
  • Mitigation: Automated migration tooling, connection pooling with schema switching

Database per Tenant (dedicated DB per tenant):

  • Best for: <100 tenants, strict compliance, large enterprise clients
  • Cost: Highest ($274+/mo per tenant on RDS)
  • Risk: Operational overhead managing N databases
  • Mitigation: Infrastructure-as-code templates, centralized monitoring

Hybrid (shared for standard, dedicated for enterprise):

  • Best for: Mixed tenant base with some requiring isolation
  • Cost: Moderate (shared DB + N dedicated for premium)
  • Trade-off: Two code paths, but repository pattern abstracts them

Step 3: Design Tenant Routing

Recommend routing strategy based on the application type:

  • Subdomain routing: tenant.app.com — best for B2B SaaS
  • Path routing: app.com/tenant/ — simpler SSL, good for internal tools
  • Header routing: X-Tenant-ID — API-first products
  • JWT claim: tenant_id in token — serverless/stateless architectures

Step 4: Address Cross-Cutting Concerns

For each recommendation, cover:

  • Rate limiting: Per-tenant to prevent noisy neighbors
  • Billing metering: How to track usage per tenant
  • Background jobs: Tenant context propagation to workers/queues
  • Caching: Tenant-namespaced cache keys
  • Search: Filtered indices or per-tenant indices
  • Audit logging: Tenant-scoped audit trails

Step 5: Generate Implementation Artifacts

Produce:

  • Database schema with tenant isolation mechanisms
  • Middleware/interceptor code for tenant context
  • Repository pattern that abstracts tenancy
  • Tenant provisioning/deprovisioning scripts
  • Migration strategy for existing single-tenant apps

Examples

Example 1: Early-Stage SaaS

User prompt:

We have 30 tenants and expect 200 in a year. PostgreSQL, no compliance needs yet. What tenancy model?

Agent output:

Recommendation: Shared database with RLS

At 200 tenants with no compliance requirements, a single PostgreSQL database
with row-level security gives you the best simplicity-to-isolation ratio.

Implementation:
1. Add tenant_id UUID column to all tenant-scoped tables
2. Enable RLS: ALTER TABLE <table> ENABLE ROW LEVEL SECURITY;
3. Create policies: USING (tenant_id = current_setting('app.tenant_id')::UUID)
4. Set tenant context per request in middleware via SET LOCAL

Cost: Single db.t3.medium handles this easily at ~$50/month.
Migration path: If you later need dedicated DBs for enterprise clients,
the repository pattern lets you route specific tenants without changing app code.

Example 2: Healthcare SaaS Requiring HIPAA

User prompt:

Building a patient records SaaS. 50 clinic tenants, HIPAA required. Budget: $5k/month infra.

Agent output:

Recommendation: Database per tenant

HIPAA requires demonstrable data isolation. At 50 tenants, per-tenant databases
are operationally feasible and satisfy compliance auditors.

Architecture:
- Tenant registry DB (shared): Stores tenant metadata + routing config
- Per-tenant RDS instances: db.t3.medium ($50/mo each) = $2,500/mo for 50
- Connection routing: Middleware resolves tenant → connection string from registry
- Encryption: RDS encryption at rest + tenant-specific KMS keys

Budget fit: $2,500 for DBs + $1,000 compute + $500 other = $4,000/mo ✅

Key HIPAA controls addressed:
- Physical data isolation (separate DB instances)
- Per-tenant encryption keys (KMS)
- Tenant-scoped audit logs
- Independent backup/restore per tenant

Guidelines

  • No one-size-fits-all — always evaluate against the specific context before recommending
  • Start simple, migrate up — recommend the simplest model that meets requirements; overengineering multi-tenancy is expensive
  • RLS is not optional for shared databases — application-layer filtering alone is insufficient; one missed WHERE clause = data breach
  • Test tenant isolation — always recommend integration tests that verify queries cannot access other tenants' data
  • Plan for the migration path — even if starting with shared DB, design the data access layer so switching to dedicated DBs later is feasible
  • Background jobs are the blind spot — tenant context often gets lost in async flows; always address this explicitly

> related_skills --same-repo

> zustand

You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.

> zoho

Integrate and automate Zoho products. Use when a user asks to work with Zoho CRM, Zoho Books, Zoho Desk, Zoho Projects, Zoho Mail, or Zoho Creator, build custom integrations via Zoho APIs, automate workflows with Deluge scripting, sync data between Zoho apps and external systems, manage leads and deals, automate invoicing, build custom Zoho Creator apps, set up webhooks, or manage Zoho organization settings. Covers Zoho CRM, Books, Desk, Projects, Creator, and cross-product integrations.

> zod

You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.

> zipkin

Deploy and configure Zipkin for distributed tracing and request flow visualization. Use when a user needs to set up trace collection, instrument Java/Spring or other services with Zipkin, analyze service dependencies, or configure storage backends for trace data.

┌ stats

installs/wk0
░░░░░░░░░░
github stars17
███░░░░░░░
first seenMar 17, 2026
└────────────

┌ repo

TerminalSkills/skills
by TerminalSkills
└────────────

┌ tags

└────────────