[ https://issues.apache.org/jira/browse/KAFKA-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15176570#comment-15176570 ]
Guozhang Wang commented on KAFKA-3229: -------------------------------------- [~tom_dearman] Sorry my previous message was incorrect, indeed I meant {code} StateStore.init() {code} not {code} ProcessorContext.register() {code}, and I was not worrying about "users" but "developers" who, say, want to add a new state store implementation into it, whether it is more complex for them to reason about which store to use calling init(). Maybe I was over-thinking about programmability, but would like to bring it up so people can ponder whether it is worthwhile doing :) > Root statestore is not registered with ProcessorStateManager, inner state > store is registered instead > ----------------------------------------------------------------------------------------------------- > > Key: KAFKA-3229 > URL: https://issues.apache.org/jira/browse/KAFKA-3229 > Project: Kafka > Issue Type: Bug > Components: kafka streams > Affects Versions: 0.10.0.0 > Environment: MacOS El Capitan > Reporter: Tom Dearman > Assignee: Tom Dearman > Fix For: 0.10.0.0 > > > When the hierarchy of nested StateStores are created, init is called on the > root store, but parent StateStores such as MeteredKeyValueStore just call > the contained StateStore until a store such as MemoryStore calls > ProcessorContext.register, but it passes 'this' to the method so only that > inner state store (MemoryStore in this case) is registered with > ProcessorStateManager. As state is added to the store none of the parent > stores code will be called, metering, or even StoreChangeLogger to put the > state on the kafka topic. -- This message was sent by Atlassian JIRA (v6.3.4#6332)