Series
Pluggable by Design
Architectural patterns for building SaaS products that stay adaptable. Learn how contracts, boundaries, and explicit ownership make infrastructure swappable without rewriting your product.
Product limits: scoped quotas and usage metering Product limits: scoped quotas and usage metering
Most SaaS quota systems start as a counter column and break the moment plans diverge. Here's how Refract separates authorization from usage metering, enforces quotas through one concurrency-safe wrapper, and keeps billing policy out of application code entirely.
Pluggable scheduler tooling: one clock, one contract Pluggable scheduler tooling: one clock, one contract
Recurring work becomes difficult to maintain when scheduling logic is mixed with business logic. A dedicated scheduler boundary keeps time-based triggers declarative, predictable, and easy to evolve without rewriting application code.
Why Your AI Calls Shouldn't Know Which Model They're Talking To Why Your AI Calls Shouldn't Know Which Model They're Talking To
Your domain code should ask for a completion, not an Anthropic client. Here's how Refract's tools.ai contract keeps model choice out of business logic.
Pluggable AI tooling: three providers, one contract Pluggable AI tooling: three providers, one contract
Importing an AI SDK directly into product code feels fast until providers, models, and pricing inevitably change. A small abstraction layer keeps infrastructure isolated so swapping vendors becomes configuration instead of a refactor.
The Most Expensive Architectural Decisions Are the Ones You Don't Realize You're Making The Most Expensive Architectural Decisions Are the Ones You Don't Realize You're Making
Costly architecture decisions rarely look like decisions. They look like shortcuts. Here's how to spot them early, pay for optionality on purpose, and keep vendor SDKs out of your domain.
Interface-First SaaS. How to Swap Infrastructure Without Rewriting Product Logic Interface-First SaaS. How to Swap Infrastructure Without Rewriting Product Logic
Direct vendor SDK calls feel fast until a provider changes terms and the fix spreads across your codebase. Here's how interface-first architecture keeps billing, RBAC, and delivery paths stable by isolating volatile dependencies behind adapters.