package source import ( "context" "elasticstream/config" "elasticstream/opencdc" ) type Position struct { ID string Index string Pos int } type Source interface { Configure(context.Context, config.Config) error Open(context.Context, []Position) error Read(context.Context) (*opencdc.Data, error) Ack(context.Context, Position) error Teardown(context.Context) error }