@callback transform(event :: any(), context :: any(), state :: any()) :: {:ok, transformed_event :: any(), new_state :: any()}
@callback transform_batch(events :: [any()], context :: any(), state :: any()) :: {:ok, transformed_events :: [any()], new_state :: any()}