BornToShine /
◌ In Progress

Go Gossip Cache

A distributed in-memory cache that achieves eventual consistency across N nodes using a gossip-based replication protocol — implemented in pure Go.

Stack
Go · TCP · Gossip Protocol
Status
◌ In Progress
Concepts
Eventual consistency · Gossip propagation · Vector clocks

Problem

Most teams enforce Git conventions through code reviews and verbal agreements. This breaks down at scale — inconsistent branch names, missing commit prefixes, manual version bumps. I wanted a CLI that enforces the workflow automatically.

Prior Art

git-flow exists but it's heavyweight and opinionated about the full branching model. Commitizen handles commit messages but not branching. Nothing handled the full workflow from branch creation to release in a lightweight way.

Design Decisions

Chose Commander.js over yargs for its cleaner API and better TypeScript support. Kept the config in package.json under a "gitflow" key so it travels with the repo. Made all conventions overridable so teams aren't forced into my defaults.

Architecture

Three main modules: branch manager (creates/validates branch names), commit linter (enforces conventional commits), and release manager (bumps version, tags, generates changelog). Each is independently usable as a library.

Reflection

I'd add a --dry-run flag to every command. Teams are cautious about new CLI tools and being able to preview what would happen without executing it would lower the adoption barrier significantly.