Datacake Node
The core membership system used within Datacake.
This system allows you to build cluster extensions on top of this core functionality giving you access to the live membership watchers, node selectors, cluster clock, etc...
A good example of this is the datacake-eventual-consistency crate, it simply implements the ClusterExtension crate
which lets it be added at runtime without issue.
Features
- Zero-copy RPC framework which allows for runtime adding and removing of services.
- Changeable node selector used for picking nodes out of a live membership to handle tasks.
- Pre-built data-center aware node selector for prioritisation of nodes in other availability zones.
- Distributed clock used for keeping an effective wall clock which respects causality.
Getting Started
To get started we'll begin by creating our cluster:
use SocketAddr;
use ;
async
Creating A Extension
Creating a cluster extension is really simple, it's one trait and it can do just about anything:
use ;
use async_trait;
;
;