Writing

Reflections on Fine-Grained Access Control in Genesis DB

Oct 19, 20251 min read

Thoughts on a declarative, file-based access control model for Genesis DB, and what a single thoughtful Hacker News reply taught me about it.

I recently posted an Ask HN thread: "Genesis DB: Thoughts on fine-grained access control" to get some honest feedback from developers who've wrestled with permission systems before.

The context: I'm experimenting with a lightweight, declarative approach to access control inside Genesis DB, my event-sourcing database.

Right now, authentication is handled via Bearer tokens, but the goal is to move toward a fully declarative model. A policy.json (or .yaml) defining privilege targets, roles, and explicit grants or denies.

The file can be injected via environment variable or mounted into the container, keeping policies versioned, inspectable, and auditable. A single decision layer with default-deny semantics. It's not meant to replace external IAM systems like AWS IAM or Auth0, but rather to give small, self-contained deployments a simple, transparent policy mechanism that "just works."

In the post, I asked the HN community

  • Is injecting a policy file too static for real-world use?
  • Would a dynamic policy API make more sense?
  • What pitfalls exist with file-based or declarative systems?

It's been great seeing how others think about balancing simplicity, transparency, and flexibility in access control. Genesis DB isn't trying to reinvent IAM, it's about bringing security closer to the data, in a way that stays clean, declarative, and inspectable.

Sometimes, all it takes is a good Hacker News discussion to see if your idea actually holds up in the wild.

It wasn't a viral post, just one thoughtful comment, but that single reply made it totally worth it. Sometimes a small piece of good feedback is exactly what pushes an idea in the right direction.