Skip to content

Commit

Permalink
Add reference to blog article
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonas Chapuis authored and jchapuis committed Mar 7, 2024
1 parent 0c89b6a commit 09161f0
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion documentation/src/main/paradox/nutshell.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,8 @@ The three tenants of the 2PC protocol are *prepare*, *commit*, and *abort*: in e

Diverse forms of two-phase consensus appear frequently in service-oriented systems, especially when involving complex business workflows and heterogeneous data stores. Its usefulness goes beyond the specific area of strongly consistent, atomic transactions such as [XA](https://en.wikipedia.org/wiki/X/Open_XA). [Long-running transactions](https://en.wikipedia.org/wiki/Long-running_transaction), also known as sagas, typically make use of rollback or undo operations in the abort phase, also called [compensating transactions](https://en.wikipedia.org/wiki/Compensating_transaction).

Abstractions in the library are implemented by one of the two available runtimes, Pekko or Akka. Internally, transactions are materialized with a persistent sharded entity implementing the two-phase protocol asynchronously with at least once delivery guarantee.
Abstractions in the library are implemented by one of the two available runtimes, Pekko or Akka. Internally, transactions are materialized with a persistent sharded entity implementing the two-phase protocol asynchronously with at least once delivery guarantee.

@@@ note { .tip title="For more info" }
Check out the blog article [Two-phase consensus with functional Scala](https://jonas-chapuis.medium.com/two-phase-consensus-with-functional-scala-5dc29388ac5a)
@@@

0 comments on commit 09161f0

Please sign in to comment.