Closed shumbo closed 1 year ago
Merging #34 (d91cd6c) into main (1ff57bc) will increase coverage by
0.68%
. The diff coverage is92.68%
.
@@ Coverage Diff @@
## main #34 +/- ##
==========================================
+ Coverage 86.26% 86.94% +0.68%
==========================================
Files 20 21 +1
Lines 859 927 +68
Branches 94 103 +9
==========================================
+ Hits 741 806 +65
- Misses 117 120 +3
Partials 1 1
Files Changed | Coverage Δ | |
---|---|---|
packages/core/src/core.ts | 86.93% <88.46%> (-0.02%) |
:arrow_down: |
packages/core/src/in-memory-log-manager.ts | 100.00% <100.00%> (ø) |
|
packages/core/src/lib/transport-test-suite.ts | 98.36% <100.00%> (+0.34%) |
:arrow_up: |
... and 1 file with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more
This PR adds a minimal fault tolerance feature that can tolerate a node crashing and restarting. We do so by recording the return values of each choreographic operator and saving log entries to the persistent storage. Each operator also checks if there is a log entry in the log, and if it finds that the operator has already been executed, it returns the saved value and does not execute the actual behavior. This makes it possible to "recover" the program state at the point of the crash and continue as if the crash didn't happen. The other locations are expected to be waiting for the crashing node to come back up.