Skip to content

unmeshjoshi/tickloomexamples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Systems Workshop (Java/Gradle)

Overview

This repository contains small distributed-systems examples and exercises built with the TickLoom framework. It currently includes:

  • A quorum-based key-value store: src/main/java/com/distsys/quorumkv with tests in src/test/java/com/distsys/quorumkv/QuorumKVTest.java
  • A minimal echo server/client example: src/main/java/com/example/tickloomexample/echo with tests in src/test/java/com/example/tickloomexample/echo/EchoClusterTest.java

TickLoom artifacts used:

  • Library: io.github.unmeshjoshi:tickloom:0.1.0-alpha.7
  • Testkit: io.github.unmeshjoshi:tickloom-testkit:0.1.0-alpha.7

Reference: TickLoom on Sonatype Central

Requirements

  • JDK 21+

Build and test

./gradlew clean test

Run a specific test class:

./gradlew test --tests com.distsys.quorumkv.QuorumKVTest

If you prefer a system Gradle:

gradle clean test

Project layout

  • QuorumKV: src/main/java/com/distsys/quorumkv/*
  • Echo example: src/main/java/com/example/tickloomexample/echo/*
  • Perf utilities and tests: src/test/java/com/example/perf/*

Consistency checking (Jepsen + ConsistencyChecker)

  • We record client-observed operations using JepsenHistory and export EDN for analysis.
  • ConsistencyChecker from tickloom integrates Jepsen’s linearizability checker and a custom sequential-consistency checker.
  • Example (linearizability after heal): src/test/java/com/distsys/quorumkv/QuorumKVJepsenTest.java
    • Build the history with JepsenHistory.invoke/ok/fail using JepsenHistory.tuple(key, value)
    • Export EDN: String edn = history.getEdnString()
    • Verify: ConsistencyChecker.check(edn, ConsistencyChecker.ConsistencyProperty.LINEARIZABILITY, ConsistencyChecker.DataModel.REGISTER)
    • This mirrors the pattern in the upstream NetworkPartitionTest link

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages