coherent 0.0.1

Coherent is a Rust library for consuming microservices state
Documentation
  • Coverage
  • 0%
    0 out of 1 items documented0 out of 0 items with examples
  • Size
  • Source code size: 1.69 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 962 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • jlanng

Coherent

Coherent is a Rust library for consuming microservices state.

One problem in consuming microservices is that the shape of the data often isn't as we'd prefer. Coherent allows for both transform and join

When we join multile sources, we cn encounter read skew. Since every microservice source is asyncronous, it's possible to receive facts about an item before that of a dependent item. For example, imagine a scenario where customer submits an order. If we as a service consumer experience latency from the Orders microservice, we may confirmation from the Payments microservice before knowing anything about the order itself! Dealing with read skew places a burden upon microservice consumers. Coherent solves this by advancing a join frontier to a coherent point within all joined sources. The frontier of any given source may be defined as the time of the most recent fact/message, a heartbeat, or using a time window.

Examples

  • Consume from Kafka, transform and populate a Redis cache