AWS ClockBound client for Go
2025-01-22
Aws · Clockbound · Go · Golang · Programming · Software · Systems · Tech · Timesync · True-Time
1 minute
I’ve written a Go client for AWS ClockBound called clockbound-client-go. It uses the newer, shared memory segment protocol instead of the older, socket-based protocol. This is a prerequisite library needed to port spindle (and maybe even hedge) to AWS (for an upcoming project).
As great a tech Google’s TrueTime is, there is no available API for it. It is only through Spanner that spindle achieves its locking mechanisms with TrueTime. Currently, it’s the cheapest way, surprisingly, to do distributed locking that I’ve tried so far, compared to the likes of Redis, Zookeeper, etcd, Consul, etc. Yes, I could do VPC peering between GCP and AWS but it is quite costly at the moment.
I’ve heard of AWS’ TimeSync Service before but only in passing. Now that they’ve also released DSQL, and having seen the papers and blogs about it, turns out that TimeSync is their equivalent to TrueTime, and that there is an API for it!
Related blogs:
- This blog
- AWS ClockBound client for Go (update)
- Distributed locking on AWS (ClockBound)
- Cluster membership management on AWS
- Static-linked CGO binaries using musl and Zig