Compose Hybrid Spec
Pick features from multiple specs and mix them into a single build. Notifications from Slack + payments from e-commerce? Go.
Source specs
What to Log*
Storage Backend*
User-facing Surface
Tradeoffs
Read amplification — every authenticated read produces a log write
Two storage systems to operate and keep in sync; queries may need to federate
Tamper-evidence relies on DB role permissions — insufficient for some compliance regimes
Queue Backend*
Required Capabilities*
Failure & Durability*
Tradeoffs
Primary DB absorbs queue write load; row-level locks contend with application queries
Enqueue happens outside DB transaction — jobs can run for state that was rolled back
Additional table, polling worker, and idempotency discipline — the payoff is no duplicated side effects
Data Isolation Model*
Tenant Identification*
Per-tenant Configuration
Tradeoffs
Cheapest ops and easiest queries, but a single missed tenant_id filter is a data leak
Operational cost scales with tenant count; migrations must run against every tenant DB
Wildcard TLS cert and DNS configuration required; vanity domains compound that
Testing surface expands — every change must consider flag combinations and tenant configs
Delivery Method*
User Control
Tradeoffs
Requires persistent connection infrastructure (e.g. Redis pub/sub, WebSocket server)
Higher server request volume; notifications may lag by poll interval
Requires APNs/FCM credentials and certificate management
Significantly more complex preference storage and UI
Onboarding Format*
Personalization Signals
Activation Support
Tradeoffs
Controls first-experience but introduces sign-up drop-off proportional to wizard length
Requires event tracking + scheduled jobs + segmentation infrastructure
Staffing cost scales with signup volume — not viable for self-serve products below a certain ACV
Billing Model*
Payment Processor*
Tradeoffs
Requires handling trial periods, dunning, proration, and cancellation flows
Must instrument every billable action and send metered events to billing provider
Less customizable checkout; Paddle acts as legal seller so you avoid VAT registration
Rate Limit Algorithm*
What to Limit By*
Abuse Prevention Layer
Response Behavior*
Tradeoffs
False positives behind corporate NATs; attackers bypass with rotating proxies
Noisy-neighbor protection — one tenant cannot starve others
Allows bursts but requires a per-identity bucket state in Redis — higher memory footprint
Meaningful latency cost at the edge if the WAF is geographically distant from users
Authorization Model*
Permission Scope*
Custom Role Management
Tradeoffs
Fast to build but every 'special case' access rule becomes bespoke code that's hard to audit
Requires a policy engine and relationship store kept in sync with primary data
Every list/read query must filter by ACL — expect query-plan work and caching investment
Support load increases substantially — each customer now has a unique permission configuration
Delivery Provider*
Deliverability Setup*
Templating Approach*
Tradeoffs
Vendor cost scales with volume; deliverability expertise comes included
Low per-email cost but you own deliverability operations (reputation, bounces, suppression)
Two sending configurations and domains to maintain — worth it for deliverability isolation
Authentication Methods*
Access Control*
Multi-factor Authentication
Tradeoffs
Each provider requires an OAuth app registration and key rotation policy
Requires IdP partnership and XML-based protocol handling; significant integration work
Permission checks must be applied consistently across every data access path
Summary
10 of 10 composed features enabled
Pulled from 1 source spec
Effort Estimate
10+ weeks