Skip to content
This repository was archived by the owner on Apr 23, 2025. It is now read-only.
This repository was archived by the owner on Apr 23, 2025. It is now read-only.

[FEATURE]: Postgresql based locking service #155

Description

@marosmars

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions