cockroachdb / cockroachdb/cockroach
cdc: refactor timestamp (frontiers and boundaries) handling to be more expressive and less error-prone
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
Timestamp handling has caused a great number of bugs and confusion, often due to relying on .Next() and .Prev() needing to be called in different places for opaque reasons. It's also critical to correctness. We need a better, higher-level API that can be used to express and persist partial orderings (this specific event/boundary is before this other one).
The API should be hard to use wrongly. An API that can be used wrongly perhaps shouldn’t be an API at all -- maybe it needs to be decomposed into primitives, each of which is clear and unsurprising, even if less convenient. Reduce surprises, reduce magic.
Jira issue: CRDB-25304
Epic CRDB-28883
Contributor guide
Assessment
This issue has not been assessed yet.