transparency-dev / trillian-tessera

Go library for building tile-based transparency logs (tlogs)
Apache License 2.0
11 stars 11 forks source link

[POSIX, GCP] Separate integration from publishing checkpoints #323

Closed AlCutter closed 2 days ago

AlCutter commented 4 days ago

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:

  1. 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.
  2. 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).