Kata v1.0.0: in-process compensation workflows for Go

Hi everyone,

I’ve just released kata v1.0.0.

kata is a small in-process Go library for multi-step workflows with automatic compensation on failure.

Example use case:

  • charge card
  • reserve stock
  • create shipment
  • compensate completed steps if a later step fails

Main features:

  • shared typed state
  • per-step retry and timeout
  • parallel steps
  • observability hooks

It is not a durable distributed workflow engine.
It is meant for explicit in-process workflows inside a Go service.

Repository:
https://github.com/kerlenton/kata

I’m specifically looking for honest feedback:

  • what workflow you would use it for
  • what would stop you from using it
  • what feels unclear in the docs
  • what feels missing in the API

Discussion for feedback:
https://github.com/kerlenton/kata/discussions/10