{"repo":"tychedelia/josefine","free":true,"listed":false,"github":"https://github.com/tychedelia/josefine","clone":"git clone https://github.com/tychedelia/josefine.git","description":"💃 Kafka/Raft implementation in Rust","language":"Rust","stars":35,"topics":["raft","kafka","rust"],"license":null,"category":"data-pipelines","readme_excerpt":"josefine So perhaps we shall not miss so very much after all, while Josephine, for her part, delivered from earthly afflictions, which however to her mind are the privilege of chosen spirits, will happily lose herself in the countless throng of the heroes of our people, and soon, since we pursue no history, be accorded the heightened relief of being forgotten along with all her brethren. \\- Franz Kafka, Josefine, die Sängerin oder Das Volk der Mäuse Project Description A toy implementation of Kafka, a distributed, replicated event stream, using an implementation of Chained Raft for managing cluster state. Josefine speaks the Kafka wire protocol, using 100% Rust implementation of the protocol, kafka-protocol-rs. Traditionally, Kafka has used ZooKeeper in order to maintain cluster state and configuration, while storage and partitioning of the event log itself was handled by Kafka brokers. Over time, more and more operations in the Kafka API have come to be routed through the brokers themselves, and there is currently an experimental version of Kafka that removes the ZooKeeper dependency entirely. Josefine maintains a Raft cluster comprised of all brokers. Leadership elections in the logical Raft cluster are independent of any kind of replication of the data at the level of the API. Chained Raft The algorithm described in the original Raft paper is a replicated log, where each entry is tagged with an index in the log and a leadership term at which it was written. A consequence o","default_branch":null,"files":null,"tree":[],"storefront":"/r/tychedelia","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tychedelia/josefine/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}