Writing
Practical patterns, real code, and the occasional mistake worth writing down.
Spring Boot · Error Handling
A reusable exception-handling layer that turns stack traces into consistent, client-safe error responses with trace IDs.
REST · API Design
The difference between a technical error and a business error, and why your HTTP status code is part of your API contract.
Observability · Tracing
How a single header turns fifty thousand scattered log lines into one readable request timeline.
Spring Boot · Logging
Passwords, tokens, and PII have a way of ending up in log files. Here is what stays out and what to log instead.
Spring Boot · Integration
Timeouts, connection pooling, and correlation-id propagation are not optional extras for a service-to-service client.
Resilience · Distributed Systems
Timeouts, retries, and circuit breakers are three different failures wearing the same trench coat. Here is when to use each.
Spring Boot · Payments
A network retry should never mean a customer gets charged twice. The fix is an idempotency key and a unique constraint.
Spring Boot · Data
A database rollback cannot undo a Kafka message or a payment API call. The outbox pattern is how you close that gap.
Logs · Metrics · Traces
Logs tell you something happened. Traces tell you where the time went. Building both into one Spring Boot service.
Developer Tooling
Nine articles of reusable patterns are only reusable if copying them takes one command instead of nine tabs.