1. 17
  1. 4

    Amazing how the author can talk at length on CRDTs, and even have a section called “What are CRDTs”, yet never actually spell out “conflict-free replicated data type”.

    1. 4

      Yeah! An oversight (I link to CRDT.tech though!) Part of it is that the acronym has been overloaded over time. Conflict Free, Convergent, Concurrent, Commutative, etc. I have just opened a PR that addresses this comment.

      I don’t think it is that amazing, when you consider I say that the article is not about CRDTs, and won’t be explaining them, and links to sources. But I appreciate 1. that you read it (thanks!) and 2. took the time to comment. I have addressed that comment in a PR, and I hope our marketting team can merge+publish when America comes online.

      EDIT: to say, we have fixed that oversight. Many thanks!

    2. 2

      I really wish someone would port Hypothesis’ stateful testing to Rust’s proptest or quickcheck (https://hypothesis.works/articles/rule-based-stateful-testing/).

      Consider a map/dictionary.

      With the style of testing presented here in the linked article (https://medium.com/@tylerneely/reliable-systems-series-model-based-property-testing-e89a433b360), you basically say “here’s a random series of inserts and deletes; hopefully some deletes line up with the inserts”. With Hypothesis style testing, you can generate deletes knowing what entries the map has.

      1. 5

        In the article I point out that there is a PR open on proptest (https://github.com/AltSysrq/proptest/pull/257) that adds something very like the EQC Statem, stateful property based testing. This means you can infact generate deletes that are in the model.

        In the case in the article, testing sets, we instead use low cardinality that ensures collisions over time. Not included in the article is that the test also gathers statistics about which operations were run, what percentage of removes were meaningless etc.

        I have since ported the test to use proptest stateful testing, and it was equally effective, and much nicer to write (especially for someone who still prefers EQC Statem!)

        1. 2

          Oh cool I missed that. I’m excited!

        2. 1

          It took me a while to realize that what you and the articles are talking about is called Simulation Testing in other circles. Agreed, those are very worthwhile tests to have.