readysettech / readyset

Readyset is a MySQL and Postgres wire-compatible caching layer that sits in front of existing databases to speed up queries and horizontally scale read throughput. Under the hood, ReadySet caches the results of cached select statements and incrementally updates these results over time as the underlying data changes.
https://readyset.io
Other
4.55k stars 126 forks source link

Replace `tower` with a more active alternative #1239

Open ethan-readyset opened 7 months ago

ethan-readyset commented 7 months ago

Description

We have a pretty important dependency on tower for RPCs within Readyset. Unfortunately, the dependency seems to be unmaintained — the last commit was 5 months ago, and the last version was released almost 2 years ago. This is preventing us from upgrading our Rust toolchain because tower currently relies on ahash 0.7.7, which uses the stdsimd feature, which was removed from Rust in early February. Upgrading our toolchain past this point leads to a compile error that cannot be resolved.

We should look into replacing tower with something that is actively maintained. One option might be tarpc, which I particularly like because it allows us to easily define RPCs that are transport agnostic (e.g. they can run over TCP or over memory channels). This would enable us to easily tackle REA-3505.

Change in user-visible behavior

No

Requires documentation change

No