Skip to main content
Sparrow Logo

Modern CQRS Framework for Go

🚀

Zero Boilerplate Code

Aggregate roots, repositories, and event publishing work out of the box. Interface-first design means repositories, event buses, and event stores are all interface-based, making mock testing effortless.

🏗️

Clean Architecture Layers

Strict dependency inversion ensures the domain layer has zero infrastructure awareness. Generic repository DSL with Go generics provides type-safe CRUD/pagination/soft delete across multiple databases with a single interface.

Event-Driven Architecture

Event bus supports multiple backends: Memory/NATS JetStream/RabbitMQ/Redis with unified interface for runtime switching. Native NATS JetStream integration with persistent event streams, consumer groups, and replay capabilities for Event Sourcing.

🎯

Domain-Driven Design

Built-in aggregate root templates with event sourcing support. Aggregate version control & optimistic locking, snapshot mechanism for accelerating large version aggregate reconstruction, command pattern & use case executor.

🔧

Microservice Autonomy

One service, one database is no longer a luxury. NATS lightweight high-performance event stream, BadgerDB embedded billion-level KV database. Each microservice can be deployed, scaled, and upgraded independently without affecting other services.

🔄

Saga Distributed Transactions

Orchestrated Saga coordinator with clear compensation transaction chains ensures cross-service consistency. Testcontainers integration testing with PostgreSQL and Redis real container testing, eliminating false positives from mock databases.