Skip to content

Checkpointer interface breaking change in v1.3.0 #102

Open
@bjwrk

Description

@bjwrk

Describe the bug

The Checkpointer interface was updated in v1.3.0 to include the following two methods:

ListActiveWorkers(map[string]*par.ShardStatus) (map[string][]*par.ShardStatus, error)
ClaimShard(*par.ShardStatus, string) error

We have a custom Postgres Checkpointer implementation and the minor version bump broke our build. We believe this change should either have been an optional interface, i.e. ShardStealingCheckpointer with only the two new methods, or a major version bump. If the optional interface would be an acceptable solution, we are happy to contribute a PR.

As far as I can tell, it's sufficient for now for us to simply return a "not implemented" error as stealShard will never be true unless EnableLeaseStealing is also true, and we are not currently using this feature, but I just wanted to confirm that this was something we could expect.

As an aside, I notice there is already a DynamoDB implementation in the repo. We would be happy to flesh out the missing methods and contribute our Postgres Checkpointer in a PR at some point if that would be something you'd see value in.

Reproduction steps

Implement the Checkpointer interface prior to v1.3.0, update to v1.3.0.

Expected behavior

Minor version bumps should not break APIs.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions