Thanks, maybe I miss-read it:
I then tried implementing my own scheduling that periodically sends/clears out
messages using the ProcessorContext provided to the aforementioned transform ste
I understood it to say it inspects a state store, sends the messages
that should be sent and removes them from the store. I might have read
too much out of it though.
Cheers,
MichaĆ
On 20/06/17 17:59, Matthias J. Sax wrote:
I didn't know you could write to state stores from outside a
processor/transformer.
You can't. And as far as I understand this thread, nobody said you can.
Did I miss something?
-Matthias
On 6/20/17 1:02 AM, Michal Borowiecki wrote:
I didn't know you could write to state stores from outside a
processor/transformer. Interesting to hear that it is working although
I'd be careful as KIP-67 warns it can introduce undefined behaviour:
https://cwiki.apache.org/confluence/display/KAFKA/KIP-67%3A+Queryable+state+for+Kafka+Streams
Operations on state stores
The focus is on querying state stores, not updating them. It is not
clear what it would mean to update a state store from outside the
stream processing framework. Such updates are likely to introduce
undefined behavior to the framework.
The way I'd approach it until KIP-138 is released is to still use
punctuate() but to also use your own scheduling to send periodic "tick"
messages into the input topic. These messages can be ignored by the
Processor but will cause the stream time to advance reliably. Just need
to ensure they are distributed uniformly to all partitions.
I appreciate this is not a elegant workaround but this is what I've
settled for in the interim.
Cheers,
Michal
On 19/06/17 23:03, Steven Schlansker wrote:
On Jun 19, 2017, at 2:02 PM, Andre Eriksson <an...@tcell.io> wrote:
I then tried implementing my own scheduling that periodically sends/clears out
messages using the ProcessorContext provided to the aforementioned transform
step. However, it seems that when I call forward() from my scheduler (i.e. not
in a process()/punctuate() call), I get a NullPointerException at
ProcessorContextImpl.java:81
(https://github.com/apache/kafka/blob/0.10.2/streams/src/main/java/org/apache/kafka/streams/processor/internals/ProcessorContextImpl.java#L81).
I assume that this is because currentNode() is null outside of
process()/punctuate() calls.
There may be more elegant or direct solutions, but if all else fails you could
always consider producing to a topic rather than trying to forward directly,
then you don't have to touch the relatively delicate Processor semantics.
--
Signature
<http://www.openbet.com/> Michal Borowiecki
Senior Software Engineer L4
T: +44 208 742 1600
+44 203 249 8448
E: michal.borowie...@openbet.com
W: www.openbet.com <http://www.openbet.com/>
OpenBet Ltd
Chiswick Park Building 9
566 Chiswick High Rd
London
W4 5XT
UK
<https://www.openbet.com/email_promo>
This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmas...@openbet.com <mailto:postmas...@openbet.com> and delete it
from your system as well as any copies. The content of e-mails as well
as traffic data may be monitored by OpenBet for employment and security
purposes. To protect the environment please do not print this e-mail
unless necessary. OpenBet Ltd. Registered Office: Chiswick Park Building
9, 566 Chiswick High Road, London, W4 5XT, United Kingdom. A company
registered in England and Wales. Registered no. 3134634. VAT no.
GB927523612
--
Signature
<http://www.openbet.com/> Michal Borowiecki
Senior Software Engineer L4
T: +44 208 742 1600
+44 203 249 8448
E: michal.borowie...@openbet.com
W: www.openbet.com <http://www.openbet.com/>
OpenBet Ltd
Chiswick Park Building 9
566 Chiswick High Rd
London
W4 5XT
UK
<https://www.openbet.com/email_promo>
This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmas...@openbet.com <mailto:postmas...@openbet.com> and delete it
from your system as well as any copies. The content of e-mails as well
as traffic data may be monitored by OpenBet for employment and security
purposes. To protect the environment please do not print this e-mail
unless necessary. OpenBet Ltd. Registered Office: Chiswick Park Building
9, 566 Chiswick High Road, London, W4 5XT, United Kingdom. A company
registered in England and Wales. Registered no. 3134634. VAT no.
GB927523612