finds.dev← search

// the find

dromara/myth

★ 1,480 · Java · Apache-2.0 · updated Feb 2024

Reliable messages resolve distributed transactions

Myth is a Java library for eventual consistency in distributed transactions using reliable messaging — annotate a method with @Myth, and the framework ensures the downstream RPC call gets executed via MQ even if the caller crashes mid-flight. It targets teams already running Dubbo, Motan, or Spring Cloud with one of RabbitMQ/Kafka/RocketMQ/ActiveMQ in the stack.

The SPI extension model is well-thought-out: storage (Redis, MySQL, MongoDB, Zookeeper, file) and serialization (Kryo, Protostuff, Hessian, Java) are both pluggable without touching core code. Using LMAX Disruptor for the internal event pipeline is a sensible choice — transaction log writes are the hot path, and Disruptor keeps them off the calling thread. The admin dashboard for inspecting and replaying failed transaction logs is something most home-rolled eventual-consistency implementations skip entirely, and it matters in production. Multiple serializer options with Kryo and Protostuff included means you're not stuck paying Java serialization overhead.

Last meaningful commit was early 2024, and the project shows signs of slow decay — the README still references 'hmily-demo' in the demo module description, which is a copy-paste artifact from the sibling project. The approach is fundamentally at-least-once delivery with no idempotency helper included, so the burden of making consumers idempotent falls entirely on you. Documentation is sparse and largely in Chinese; the English README points to a Quick Start link that resolves to a dead domain. Support for Dubbo is explicitly capped at versions below 2.7, which is now ancient — anyone on a modern Dubbo stack is out of luck without forking.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →