gnodet commented on PR #22158: URL: https://github.com/apache/camel/pull/22158#issuecomment-4128069457
### Design note: `StateStoreBackend` interface location We considered moving the `StateStoreBackend` interface to `camel-api` so it could serve as a shared abstraction alongside the existing SPIs (`IdempotentRepository`, `AggregationRepository`, `StateRepository`). After analysis, we decided against it: - The existing `camel-api` SPIs are there because **core EIPs consume them** (idempotent consumer, aggregator, etc.). `StateStoreBackend` is only consumed by the `camel-state-store` component itself — nothing in core needs it. - The existing SPIs have different semantics that don't map cleanly to a generic key-value store: `IdempotentRepository` has two-phase confirm/rollback, `AggregationRepository` stores `Exchange` objects requiring serialization, and technology-specific implementations often leverage native features (JDBC transactions, Cassandra TTL, Kafka offsets). - Moving it to `camel-api` would add API surface with stricter stability guarantees for no practical benefit today. If a future core EIP needs a generic key-value store abstraction, it can be promoted then. _Claude Code on behalf of Guillaume Nodet_ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
