Coordination service API in YDB Rust SDK

PR: ydb-rs-sdk/pull/162

To leverage async Rust skills, I joined a semester project to implement a client and SDK API for the YDB Coordination service inside its Rust SDK.

The main challenge was to implement a Semaphore API. The distributed locking problem is hard in terms of guarantees and SDK ergonomics:

image.png

You can read the following articles:

I’ve implemented the API, which allowed implementing Leader election, Service discovery and Resource limiting using YDB and Rust.