Transactional Outbox Pattern in Go with PostgreSQL

Transactional Outbox Pattern in Go with PostgreSQL

Write the event with the data. Never split them.

Two writes that should succeed together will eventually fail separately. Your order service saves the order to the database, then publishes an order.created event to a message broker.

Decision Records for AI-Driven Software Development

Decision Records for AI-Driven Software Development

Keep intent close to the code.

Decision records are the missing memory layer in AI-assisted software development. They capture not just what was built, but why — and that distinction becomes critical when AI tools are writing your code.

Testing Concurrent Go Code with synctest

Testing Concurrent Go Code with synctest

Stop sleeping in concurrent Go tests.

Testing concurrent Go code has always required a bit of discipline. Goroutines are cheap, channels are simple, and context cancellation is idiomatic — background workers and timers are everywhere in real Go services.

Evergreen Notes: Write Notes That Compound Over Time

Evergreen Notes: Write Notes That Compound Over Time

Notes that improve instead of decaying.

Most engineering notes are written once and forgotten. You capture something in a debugging session, paste it somewhere, and find it two years later with no context for why it mattered.

Subscribe

Get new posts on AI systems, Infrastructure, and AI engineering.