Hi Tsz-Wo - Thanks so much for responding.

As I'm thinking through this short thread, I'm realizing I'm not totally sure what I'm looking for. :-)

Maybe we could try something like this: I can draft an example of the kind of documentation that I think could be helpful and share it on this list. Depending on the feedback, we can just leave it at that, or iterate on it, and/or make it publicly available. My guess is that it will need a few iterations since my knowledge of Raft and Ratis is probably small compared to much of the community.

If that sounds worth trying, I can get started on it in the new year.

Thanks -- Joel.

On 12/24/2025 12:28 PM, Tsz-Wo Nicholas Sze wrote:

Hi Joel,

Thanks for using Ratis!

> ... A couple examples are how client-side actions map to state machine invocations, how term indexes should be handled to minimize the number of replays when a node restarts, other events from the Raft layer that my state machine and application should be prepared to handle, etc.

As you probably know, there are a few examples in [1]. If you have some particular questions, please feel free to ask them here.  Or, if you have suggestions, we could add more code examples.

> ... does documentation like that (kind of a conceptual or "programmer's guide" type documentation) exist? ...

There is a work-in-progress doc [2].

> ... does the community think there would be value in producing it?

Definitely.  We should produce more docs.

Tsz-Wo
[1] https://github.com/apache/ratis/tree/master/ratis-examples/src/main/java/org/apache/ratis/examples
[2] https://jojochuang.github.io/ratis-site/docs/overview/


On Tue, Dec 23, 2025 at 9:54 AM Joel Shepherd <[email protected]> wrote:

    Hi - I've been working with Ratis-3.x for the past few weeks. One
    ongoing challenge I've run into is that while the code is reasonably
    documented, there's plenty of information about Raft, and there
    are some
    easy-to-find examples, I struggle with having a broader
    understanding of
    how all the pieces are supposed to work together. A couple
    examples are
    how client-side actions map to state machine invocations, how term
    indexes should be handled to minimize the number of replays when a
    node
    restarts, other events from the Raft layer that my state machine and
    application should be prepared to handle, etc.

    Outside of example code, does documentation like that (kind of a
    conceptual or "programmer's guide" type documentation) exist? If it
    does, I'd appreciate a pointer to it and apologize for not finding it
    myself. If not, does the community think there would be value in
    producing it?

    Thanks -- Joel.


Reply via email to