This repository has been archived by the owner on Dec 13, 2023. It is now read-only.
Persistence of async indexing requests #2229
heinrichcohn
started this conversation in
Ideas
Replies: 1 comment 2 replies
-
@heinrichcohn Your observations are spot-on and the proposal of externalizing the queues into a durable queue implementation is most definitely the right choice. Do you have an interface blueprint in mind? Please share the same and we can work out the details. |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello
I've been using conductor for a few months and i have noticed a few things that should be improved in the async indexing area.
The current implementation of the async indexing is a little bit problematic because:
Queueing of indexing requests is done in memory so in case of a failure all these requests will be lost, causing inconsistency between the data stored in the ExecutionDB and in ES.
In case of high throughput of indexing requests, the async indexing queue will be filled very quickly and any new request will be dropped, causing again inconsistency between the data stored in the ExecutionDB and in ES.
New approch
I've been working on a new approach which consists on a new component called "AsyncIndexer" that can be injected into the indexDao and it will handle the async indexing.
This AsyncIndexer will have two implementations:
The idea of implementation (2) is as follows:
Implementation (1) will be added to conductor-core project
Implementation (2) will be added to redis-persistence project
@apanicker-nflx I would like to know what you think about this approach
Your feedbacks are welcomed
Beta Was this translation helpful? Give feedback.
All reactions