This PR disconnects the act of integrating new entries into a tree, from the act of publishing a new checkpoint which publicly commits to that new tree state for the POSIX and GCP storage implementations. (PRs for other implementations to follow.)
The rationale behind this change is two-fold:
Different storage implementations should be free to integrate in whatever fashion makes most sense for the infrastructure it runs on. E.g. it may make sense for some infrastructure to make frequent smaller updates as opposed to a large batch.
A controlled and predictable cadence for making new checkpoints available helps the surrounding ecosystem to function well. E.g. capacity planning for services such as witnessing relies on having some idea of how many requests will be received.
Decoupling integration from publishing checkpoints helps free up implementations to be able to solve for both (1) and (2).
This PR disconnects the act of integrating new entries into a tree, from the act of publishing a new checkpoint which publicly commits to that new tree state for the POSIX and GCP storage implementations. (PRs for other implementations to follow.)
The rationale behind this change is two-fold:
Decoupling integration from publishing checkpoints helps free up implementations to be able to solve for both (1) and (2).