Waltz Write Ahead Log Open Sourced
Written by Kay Ewbank   
Monday, 23 September 2019

A distributed write-ahead log has been open sourced by WePay. Waltz was originally designed to be the ledger of money transactions on the WePay system and has since been generalized to be suitable for other distributed systems that require serializable consistency.

The developers say that Waltz is similar to existing log systems like Kafka in that it accepts, persists and propagates transaction data that has been produced or consumed by many services. Where Waltz differs is in that it provides a machinery that can be used to achieve serializable consistency in distributed applications, because it detects conflicting transactions before they are committed to the log. Waltz is regarded as the single source of truth rather than the database, and it enables a highly reliable log-centric system architecture.

waltz

The developers describe Waltz as a write-ahead log. Transaction records are immutable and ordered in the log, and if an application applies the transactions to its own database in the same order, the result should be deterministic. The process is as follows:

  1. An application composes a transaction message that consists of descriptions of intended data change.
  2. The application sends it to Waltz. At this point, the application’s database is not updated yet.
  3. Waltz receives the transaction message and persists it in the Waltz log.
  4. Waltz sends the transaction message back to the application.
  5. The application receives the transaction message and applies data change to its own database.

The Waltz log contains all data changes. Updates to application databases are driven by messages (transaction data) from Waltz, which is why Waltz becomes the holder of the primary information, while the service databases are derived information, materialized views of the Waltz log.

waltz

 

More Information

Waltz On GitHub

Related Articles

The Enduring Influence Of Postgres

Kafka Graphs Framework Extends Kafka Streams

Kafka Webview Released

Comparing Kafka To RabbitMQ

Apache Kafka Adds New Streams API

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Interact With Virtual Historic Computers
14/04/2024

Alan Turing's ACE computer is a legendary computer that is particularly special for I Programmer - our account of it was the first ever history article on the site when it launched in 2009. Now this i [ ... ]



ZLUDA Ports CUDA Applications To AMD GPUs
18/04/2024

ZLUDA is a translation layer that lets you run unmodified CUDA applications with near-native performance on AMD GPUs. But it is walking a fine line with regards to legality.


More News

raspberry pi books

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Monday, 23 September 2019 )