Profiling a Slow Endpoint: Flame Graph to Fix, On-CPU vs Off-CPU
Learn to diagnose a slow monolith endpoint: scope the problem, use APM traces, pick on-CPU or wall-clock profiling, read flame graphs, and fix N+1 queries.
16 min read
Category
When one deployable is the right answer, how to structure it, and how to migrate in either direction.
Learn to diagnose a slow monolith endpoint: scope the problem, use APM traces, pick on-CPU or wall-clock profiling, read flame graphs, and fix N+1 queries.
16 min read
Learn how to profile application boot time, defer modules safely, keep readiness honest, and weigh lazy loading against first-request latency and late failures.
14 min read
Design an in-process event bus for a modular monolith: domain events, in-transaction vs after-commit handlers, outbox durability, boundaries and testing.
14 min read
Compare in-memory and Postgres rate limiters for a monolith: algorithms, atomic SQL, process-count pitfalls, failure modes, and how to choose by topology.
14 min read
Compare Postgres audit triggers, application events and change data capture for audit logging in a monolith, with audit table design and a hybrid pattern.
14 min read
Cut build time in a monolith repo by selecting CI work per module from a checked-in dependency graph, with path filters, safety nets and required checks handled.
13 min read
Learn a staged, telemetry-driven process to find and remove dead code in a large monolith: detect unused endpoints, add tombstones, deprecate, flag, then delete.
17 min read
Learn how to build a module ownership map for a monolith, generate and validate CODEOWNERS from it, and route reviews without blocking large changes.
13 min read
Profile a slow monolith test suite, fix shared state so parallel tests are safe, then split by module and timing data without making flaky tests faster.
16 min read
Learn how trunk based development, fast pipelines, safe migrations and release safety let you deploy a monolith frequently, even daily, before splitting it.
13 min read
How to use feature flags in a monolith for trunk-based development: flag types, evaluation points, gradual rollout, schema changes, testing and flag cleanup.
13 min read
A checklist for running multiple instances of a monolith: find hidden shared state, replace in-process locks, and stop cron jobs from running once per instance.
14 min read