[
https://issues.apache.org/jira/browse/CAMEL-9516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15098010#comment-15098010
]
Rachel Evans commented on CAMEL-9516:
-------------------------------------
Looking at this, it seems that defining a PollingConsumerPollStrategy (where
"commit" is the callback we need) may be sufficient. This approach satisfies
everything on this ticket except for the requirement that the callback happens
before any Exchanges.
> DynamodbStreamConsumer should provide for a callback once the stream is being
> read
> ----------------------------------------------------------------------------------
>
> Key: CAMEL-9516
> URL: https://issues.apache.org/jira/browse/CAMEL-9516
> Project: Camel
> Issue Type: New Feature
> Components: camel-aws
> Reporter: Rachel Evans
> Priority: Blocker
> Fix For: 2.17.0
>
>
> Use case: I want to read and keep up-to-date with the contents of a table.
> Approach: start reading the stream (using DdbStreamConsumer), then _once the
> consumer has definitely started reading the stream_, i.e. is guaranteed not
> to miss any future updates, _then_ I scan the table.
> In order to achieve this I need to know when the consumer has started reading
> the stream. Specifically, when the first successful call to GetRecords has
> occurred.
> Possible approach: on the endpoint URI, define a ddbStreamStartupListener
> bean parameter.
> Given I have a DdbStreamEndpoint with a ddbStreamStartupListener
> When the first call to GetRecords success
> Then the bean should be called synchronously (*before* the consumer proceeds
> with processing any records that GetRecords returned).
> Of course it is up to the user providing that bean what it does – for
> example, whether it does something blocking and therefore potentially long,
> or whether it triggers something async.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)