#rabbitmq #saga #legend #operation #messaging #async

no-std legend-saga

A Rust library for working with RabbitMQ and asynchronous operations

22 releases

new 0.0.22 May 8, 2025
0.0.21 May 2, 2025
0.0.20 Apr 29, 2025
0.0.18 Mar 27, 2025
0.0.10 Nov 28, 2024

#379 in Asynchronous

Download history 10/week @ 2025-01-15 19/week @ 2025-01-29 7/week @ 2025-02-05 74/week @ 2025-02-12 19/week @ 2025-02-19 32/week @ 2025-02-26 4/week @ 2025-03-05 7/week @ 2025-03-12 275/week @ 2025-03-26 37/week @ 2025-04-02 32/week @ 2025-04-09 147/week @ 2025-04-16 84/week @ 2025-04-23 216/week @ 2025-04-30

484 downloads per month

MIT license

130KB
3K SLoC

Legend saga

A Rust library that simplifies microservice communication via RabbitMQ, supporting event-driven patterns and reliable messaging.

crates.io Documentation dependency status
CI downloads


Features

Core Communication:

  • Publish/Subscribe Messaging: Exchange messages between microservices using a publish-subscribe pattern.
  • Headers-Based Routing: Leverage the power of RabbitMQ's headers exchange for flexible and dynamic routing of messages based on custom headers.
  • Durable Exchanges and Queues: Ensure message persistence and reliability with durable RabbitMQ components.

Saga Management:

legendaryum
  • Saga Orchestration: Coordinate complex, multi-step transactions across multiple microservices with saga orchestration.
  • Saga Step Handlers: Implement step-by-step saga logic in your microservices using callbacks.
  • Compensation Logic: Define compensating actions for saga steps to handle failures gracefully and maintain data consistency.

Flags

std y eventsfeatures flags:

  • std is the main app,
  • events = ["serde", "strum", "strum_macros"] are used to handle types, payloads, enum, struct of the app.

Contributors

Thanks to all contributors!

Author

Jorge Clavijo https://github.com/jym272

License

Distributed under the MIT License. See LICENSE for more information.

Dependencies

~0–16MB
~156K SLoC