I second the proposal.

1. As an aside, would we be open to accept other alternative forms of
proofs such as property based testing (semi-formal methods) in future?

2. TLA+ serves as a proof of correctness for the specification. The north
star would be to have assertions for invariants defined in TLA+ in our
integration tests so that we can also have proof of correctness for the
implementation. Do you have any thoughts on this?

--
Divij Vaidya



On Tue, Jul 26, 2022 at 5:21 PM Haruki Okada <ocadar...@gmail.com> wrote:

> Hi.
>
> That also sounds good to me.
>
> TLA+ spec helps us to understand the protocol from a high-level.
> Also I agree with Tim's point that the spread of familiarity with
> formal methods would be beneficial in the long term.
>
> 2022年7月26日(火) 23:58 Tom Bentley <tbent...@redhat.com>:
>
> > Hi,
> >
> > I noticed that TLA+ has featured in the Test Plans of a couple of recent
> > KIPs [1,2]. This is a good thing in my opinion. I'm aware that TLA+ has
> > been used in the past to prove properties of various parts of the Kafka
> > protocol [3,4].
> >
> > The point I wanted to raise is that I think it would be beneficial to the
> > community if these models could be part of the main Kafka repo. That way
> > there are fewer hurdles to their discoverability and it makes it easier
> for
> > people to compare the implementation with the spec. Spreading familiarity
> > with TLA+ within the community is also a potential side-benefit.
> >
> > I notice that the specs in [4] are MIT-licensed, but according to the
> > Apache 3rd party license policy [5] it should be OK to include.
> >
> > Thoughts?
> >
> > Kind regards,
> >
> > Tom
> >
> > [1]:
> >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-848%3A+The+Next+Generation+of+the+Consumer+Rebalance+Protocol#KIP848:TheNextGenerationoftheConsumerRebalanceProtocol-TestPlan
> > [2]:
> >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-853%3A+KRaft+Voter+Changes#KIP853:KRaftVoterChanges-TestPlan
> > [3]: https://github.com/hachikuji/kafka-specification
> > [4]:
> >
> >
> https://github.com/Vanlightly/raft-tlaplus/tree/main/specifications/pull-raft
> > [5]: https://www.apache.org/legal/resolved.html
> >
>
>
> --
> ========================
> Okada Haruki
> ocadar...@gmail.com
> ========================
>

Reply via email to