Bemi Blog

When Postgres Indexing Went Wrong

Indexing in Postgres seems simple, but it’s important to understand the basics of how it really works and the best practices for preventing system downtime. TLDR: Be careful when creating indexes — a lesson I learned the hard way when concurrent indexing failed silently. Critical incident At a previous company,

It’s Time to Rethink Event Sourcing

The traditional approach to implementing Event Sourcing comes with many challenges. In this blog post, I’ll share new ideas on how to achieve 80% of the Event Sourcing benefits with 20% effort.

Choosing the Right Audit Trail Approach in Ruby

The Ruby ecosystem offers a wide range of tools for building an audit trail, each with its pros and cons. So, which one is the best choice?

How Change Data Capture Powers Modern Apps

CDC is becoming an increasingly popular software pattern, with dev tooling startups centered around CDC having cumulatively raised nearly a billion dollars in funding in recent years. The surge in CDC's popularity begs the questions: why has it become so important and how does it work?

The Day Soft Deletes Caused Chaos

Discover the critical mistakes and lessons learned from using soft deletes in production systems. This blog post explores the complexities, data integrity issues, and alternative solutions to managing deleted data effectively.

Bemi Blog © 2026