Apply Software Transactional Memory to a Real-Time Auction Book
Overview
What this challenge is about.
Implement two variants of the same auction-book API (best-bid/best-ask lookup, place-order, cancel-order, match-orders): (1) baseline with java.util.concurrent locks + a SkipList, (2) STM-based in Haskell GHC or Clojure (pick and defend). The STM variant must preserve the matching invariant (no negative inventory, no double-fills) under concurrent contention. Benchmark both at 8 / 32 / 128 concurrent clients with a realistic mix (60 percent reads, 30 percent place, 10 percent cancel). Report throughput, tail latency, and retry rates (STM-specific). Document where STM wins, where it loses, and where the engineering trade-offs land. Deliver both implementations, the benchmark harness, the dataset, and a 12-page CTO-facing recommendation.
The Brief
What you'll do, and what you'll demonstrate.
Implement an auction book in both lock-based and STM variants, benchmark them under realistic load, and produce a defensible feasibility study.
Earning criteria — what you'll demonstrate
- Implement non-trivial concurrent semantics with STM primitives
- Compare STM vs. fine-grained locking under realistic workloads
- Reason about retry rates as an STM-specific perf concern
- Produce a feasibility study that a CTO can fund or reject
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
Careers
Roles this prepares you for.
Real titles. Real skill bridges. Pick the one closest to your trajectory.
Career mappings coming soon.