The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Yes: adya is presented as a Rust-based command-line tool that runs database workloads and checks the resulting transaction histories. Its appeal is an integrated workflow for teams that want isolation testing from a non-JVM harness. It is not a complete replacement for Jepsen’s Elle: the reported workload coverage is narrower, and a clean result applies only to the history the tool checked.
What adya checks—and what a clean result means
Adya checks observed behavior, not what application code or database documentation intends to happen. In the account by Zayd Mulani, the tool runs transactions, records their inputs and results, infers dependencies between transactions, and looks for cycles that are forbidden by the consistency model being checked. When it finds a violation, it reports a transaction chain intended to make the conflict understandable.
As an Amazon Associate I earn from qualifying purchases.
For example, the default list-append workload treats each key as a list. Transactions append unique values and read lists; the observed lists constrain the order in which appends could have occurred. The checker builds a dependency graph using write-write (ww), write-read (wr), and read-write (rw) relationships. For strict-serializability-style models, the article says it also accounts for real-time order.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsA clean check means no anomaly covered by the selected checker was found in that particular history. It does not establish that every possible schedule is safe, prove application correctness, or rule out anomaly classes the workload cannot expose.
#1 Best Overall
Why a non-JVM workflow can matter
Jepsen’s Elle is not limited to JVM applications. Its official repository describes a route for non-JVM users: write a history to a file or stream and call a wrapper program. The distinction Mulani draws is practical rather than absolute: adya aims to combine workload execution and checking in a Rust-native CLI workflow, rather than requiring users to assemble that path themselves.
The article shows cargo install adya and example adya run commands. Those are examples reported by the author, not independently verified current installation instructions; the available evidence does not establish the present Cargo package, release, flags, or repository status. Confirm the project’s current documentation before relying on a command in CI.
What workloads and databases does it cover?
Built-in workload families
- List-append: records list reads and unique-value appends, which can reveal ordering conflicts.
- Read-write registers: models reading and writing register values.
The article says adya does not cover predicate reads or Elle’s bank, set, and counter checkers. It also reports textual proofs rather than Graphviz diagrams.
Free tools Windows power users keep installed
One-click scans. No signup required.
Database options and custom clients
Mulani’s article reports built-in drivers for SQLite, PostgreSQL, and MySQL. For other systems, it describes an exec mode that exchanges JSON Lines with a client, and mentions a short Python SQLite example. These are article-reported capabilities; the available evidence does not independently verify current compatibility or exact interface details.
How to interpret the reported comparisons
Mulani’s October 6, 2026 article reports two comparisons with Elle. The author says adya matched the expected verdicts, anomaly types, and weakest isolation models ruled out across 56 list-append and read-write-register fixture histories shipped with Elle. In an initial live comparison, Elle completed 34 of 40 generated histories, and adya agreed on all 34 completed cases. These are author-reported results, not an independent benchmark or proof of equivalent coverage.
The official Elle repository describes a broader anomaly vocabulary and cautions that Elle is not complete; it recommends manually checking reported anomalies. A dependency-cycle explanation is useful evidence to investigate, not a substitute for understanding the history and the checker’s assumptions.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.What the database runs found—and did not establish
The article reports CI runs against PostgreSQL 17 and MySQL 8.4 using 4,000 transactions, 10 clients, and 6 hot keys at each tested isolation level. The results below are for the article’s list-append workload and setup, not universal guarantees about either database or every workload.
Recommended Free Tools
| Database and level | Reported result in the article | How to read it |
|---|---|---|
PostgreSQL 17, READ COMMITTED |
Anomalies when checked for serializability | A history from this setup did not satisfy the stronger model being checked. |
PostgreSQL 17, REPEATABLE READ |
A G2-item anomaly against serializability |
The article describes PostgreSQL’s level here as snapshot isolation; do not generalize this behavior to every database using the same level name. |
PostgreSQL 17, SERIALIZABLE |
Valid histories in the reported run | This is an outcome for the tested histories, not a guarantee for all executions. |
MySQL 8.4, REPEATABLE READ |
Several anomaly classes in the reported workload | The article’s claims about lost updates and partial observation of another transaction’s writes are specific to its setup. |
The level names alone cannot tell you what a particular engine, version, and workload will do. The value of a history checker is that it tests observed outcomes against a model, while its conclusions remain bounded by the workload and history collected.
A restart experiment is one case, not a general guarantee
Mulani separately reports a PostgreSQL serializable test with 6,000 transactions and nine forced restarts: 2,957 commits and 3,043 failures. The resulting history checked clean. That result describes the reported experiment; it does not establish that every restart pattern, failure mode, or retry policy is safe.
When adya is a useful fit
- Your team wants to exercise a database under concurrent transactions and check the resulting history in a Rust-oriented or non-JVM workflow.
- Your question can be expressed using the reported list-append or read-write-register workload families.
- You can treat a failure report as a lead to investigate and a clean result as evidence about tested histories—not as a certification.
For stronger confidence, vary schedules and inputs, increase contention, and include relevant faults and retries. Check that the workload actually represents the invariants your application depends on; a checker cannot expose behavior the workload never attempts to observe.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




