## Description
The "first_checkpoint" option is a bit broken.
If first_checkpoint is larger than watermark + 1, for sequential
pipeline this will simply lead to loss of liveness because it always
expects watermark + 1 as the next checkpoint; for concurrent pipeline it
will never be able to update watermark for a similar reason.
This PR adds a check when registering the pipeline to simply not allow
that to happen.
If first_checkpoint is smaller than watermark + 1, the intention must be
that we want to be able to backfill.
However the sequential pipeline will ignore any data that is below the
watermark.
This PR fixes that by still allowing us to commit data even when they
are below watermark.
## Test plan
CI.
Probably need to add tests too.
---
## Release notes
Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.
For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.
- [ ] Protocol:
- [ ] Nodes (Validators and Full nodes):
- [ ] Indexer:
- [ ] JSON-RPC:
- [ ] GraphQL:
- [ ] CLI:
- [ ] Rust SDK:
- [ ] REST API: