Move records between systems
without writing glue again

Ruchei connects queues, object storage and internal services behind one typed schema. Retries, backpressure and replay are handled for you.

Typed schemas

Contracts are declared once and validated on both ends of every hop.

Predictable retries

Exponential backoff with a bounded dead letter queue per route.

Replay

Any window can be replayed from the log without touching producers.

Backpressure

Slow consumers throttle upstream instead of dropping records.

A route in eleven lines

route "orders" {
  from  queue("orders.inbound")
  parse schema("order.v3")
  retry attempts = 6, backoff = "2s..5m"

  to warehouse("analytics.orders")
  to service("billing", timeout = "10s")

  on_error dead_letter("orders.dlq")
}

Routes are plain files. They are reviewed, versioned and rolled out like any other change in your repository.

Where it runs

A single static binary with no runtime dependencies. It reads its routes at start and exposes metrics on a local port.