#microservices #consuming #join #state #read #frontier #skew

coherent

Coherent is a Rust library for consuming microservices state

1 unstable release

0.0.1 Dec 26, 2022

#5 in #frontier

MIT/Apache

2KB

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

No runtime deps