I built Kessoku to solve a simple problem: Go apps start too slowly.
Your app probably initializes services like this:
DB (300ms) → Cache (200ms) → Auth (100ms) = 600ms 😴
Kessoku runs them in parallel:
DB (300ms) ┐ Cache (200ms) ├─ = 300ms 🚀 Auth (100ms) ┘
Quick Example
//go:generate go tool kessoku $GOFILE var _ = kessoku.Inject[*App]("InitApp", kessoku.Async(kessoku.Provide(NewDB)), // These run kessoku.Async(kessoku.Provide(NewCache)), // at the same kessoku.Async(kessoku.Provide(NewAuth)), // time! kessoku.Provide(NewApp), )
Get Started
go get -tool github.com/mazrean/kessoku/cmd/kessoku
That's it. Your app now starts faster.
Why Kessoku?
- Compile-time: Zero runtime overhead (unlike uber/fx)
- Automatic: Just add
Async()
to parallelize - Compatible: Drop-in replacement for google/wire
Perfect for microservices, serverless functions, or any app with multiple slow initializations.
Top comments (0)