Our great sponsors
-
-
tigerbeetle
Discontinued A distributed financial accounting database designed for mission critical safety and performance. [Moved to: https://github.com/tigerbeetledb/tigerbeetle] (by coilhq)
If you avoid multithreading in your consensus protocol, this also means that your implementation becomes more deterministic. If you can have it fully deterministic by stubbing out the message passing and storage, then you can do deterministic simulation fuzzing like we do in TigerBeetle, which is a high velocity testing technique for finding/reproducing/fixing interesting (and rare) bugs: https://github.com/coilhq/tigerbeetle#simulation-tests
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
In general Hashicorp's repos are high quality:
https://github.com/hashicorp/raft
Example application: https://github.com/Jille/raft-grpc-example
-
In general Hashicorp's repos are high quality:
https://github.com/hashicorp/raft
Example application: https://github.com/Jille/raft-grpc-example
-
In my implementation, in each AppendEntries request, the leader includes X commits starting from nextIndex. The follower either accepts all X commits, or reject all of them. If the follower accepted all commits, the leader moves nextIndex to (X + nextIndex when the request was sent). See code here (matchIndex = nextIndex + X - 1): https://github.com/ditsing/ruaft/blob/master/src/sync_log_en....
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Related posts
- A distributed systems reading list
- Show HN: hraftd – A reference use of HashiCorp's Raft implementation
- Open Source Workflow Orchestration Platform
- gRPC Name Resolution & Load Balancing on Kubernetes: Everything you need to know (and probably a bit more)
- Mastering Golang Microservices - A Practical Guide: Embrace High-Performance with Kitex and Hertz