Software architecture

Choose system boundaries, compare architectural tradeoffs, and evolve an application without unnecessary complexity.

← All articles

Showing 1–10 of 10 articles

Plan a reversible release for a risky architectural change
Architecture

Plan a reversible release for a risky architectural change

Release architectural changes through compatible stages, bounded exposure, measurable checkpoints, and a recovery plan that includes data and side effects.

Oct 14, 2026
5 min read
Review an AI proposed architecture against actual requirements
Architecture

Review an AI proposed architecture against actual requirements

Evaluate an AI architecture proposal against real requirements, ownership, failure modes, and operating costs before adopting its services or abstractions.

Oct 14, 2026
5 min read
Design tenant isolation into every data access path
Architecture

Design tenant isolation into every data access path

Carry trusted tenant context through queries, caches, jobs, files, and administration, then verify isolation with cross-organization negative tests.

Oct 14, 2026
5 min read
Find a scaling bottleneck before splitting the application
Architecture

Find a scaling bottleneck before splitting the application

Measure latency, resource saturation, and workload shape before splitting services, then compare bounded fixes against the actual limiting resource.

Oct 14, 2026
5 min read
Use an outbox when database success and message delivery diverge
Architecture

Use an outbox when database success and message delivery diverge

Close the gap between committed business data and failed message delivery with an outbox, repeatable dispatch, and consumer duplicate protection.

Oct 14, 2026
5 min read
Design a background job for work that should not block a request
Architecture

Design a background job for work that should not block a request

Move slow work into durable background jobs with clear acceptance, bounded retries, duplicate protection, cancellation, and visible recovery states.

Oct 14, 2026
5 min read
Separate domain rules from framework plumbing without overengineering
Architecture

Separate domain rules from framework plumbing without overengineering

Keep business decisions separate from HTTP and database plumbing with a small function boundary, explicit inputs, and behavior-focused verification.

Oct 14, 2026
6 min read
Write an architecture decision that explains the tradeoff
Architecture

Write an architecture decision that explains the tradeoff

Write a concise architecture decision with concrete constraints, credible alternatives, accepted costs, and evidence that would trigger a review.

Oct 14, 2026
6 min read
Draw a system boundary from one real user journey
Architecture

Draw a system boundary from one real user journey

Trace one user outcome across UI, authorization, storage, and providers to draw a useful system boundary with explicit ownership and failure states.

Oct 14, 2026
6 min read
Choose a modular monolith before reaching for microservices
Architecture

Choose a modular monolith before reaching for microservices

Compare deployment, ownership, and failure boundaries before choosing microservices, then build module boundaries you can verify inside one application.

Oct 14, 2026
5 min read