Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE]: Postgresql based locking service #155

Open
marosmars opened this issue Oct 3, 2023 · 0 comments
Open

[FEATURE]: Postgresql based locking service #155

marosmars opened this issue Oct 3, 2023 · 0 comments
Assignees

Comments

@marosmars
Copy link

Conductor uses a locking service to synchronize workflow execution. This is necessary in a multi instance deployment as well as single node deployment. Simply put, when running multiple conductor servers (for HA and horizontal scaling) executing a shared set of workflows, race conditions can only be eliminated with a locking service.

There are existing implementations of a locking service in conductor e.g. RedisLock or LocalOnlyLock but we don't run with Redis and LocalOnlyLock is useful only in a single node environment.

We need to implement a version of core/src/main/java/com/netflix/conductor/core/sync/Lock.java interface that uses postgres database as a central locking service. Postgres supports advisory locks that are a good fit for this. Note that the locking service needs to be reentrant.

The implementation should be placed into FRINXio/conductor-community subproject and eventually upstreamed to Netflix/conductor-community since that's where postgres integration resides.

@marosmars marosmars assigned marosmars and MarcoMruz and unassigned marosmars Oct 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants