Discussed in #1219
These changes enable bindings for captures, derivations, and materializations to work in a consistent way with respect to "resetting" the state of a binding and re-starting its backfill when a binding is removed from a spec, as well as adding capabilities for a binding to be "reset" without removing it from the spec via a new backfillVersion property. Additionally, they will allow materializations to drop & re-create the respective materialized table (or equivalent) when a materialization binding is reset.
Discussed in #1219
These changes enable bindings for captures, derivations, and materializations to work in a consistent way with respect to "resetting" the state of a binding and re-starting its backfill when a binding is removed from a spec, as well as adding capabilities for a binding to be "reset" without removing it from the spec via a new
backfillVersionproperty. Additionally, they will allow materializations to drop & re-create the respective materialized table (or equivalent) when a materialization binding is reset.backfillVersionandbindingKeyconcepts:backfillVersionto capture/derivation/materialization spec andbindingKeyto protocolImplement automatic pruning of driver & runtime checkpoints forbindingKey's that are removed from task specsbindingKeyfor keying binding state (depends on spec updates, above)Graceful shutdown of connectors:Makeconnector-initpropagate shutdown signals to connectors and give them a chance to exit gracefullyUpdate materializations to clean up after themselves when signaled to exit (related: SQL warehouse materializations don't do a very good job of cleaning up after themselves connectors#984) - for this scope of work, most relevant for those that track column-like type information and produce constraints for existing tablesUpdate "activate" logic to disable materialization shards before applying changes (when needed), and re-enable them after changes have been appliedbindingKeystate_keyon behalf of connectors even for captures / materializations built without it.backfillcounters are always monotonically increasing in the control planeApplyoperations