Skip to content

Investigate using a third party system to solve distributed synchronization in KB #24

@sbrossie

Description

@sbrossie

Production KB will always involve several instances, and today distributed synchronization is achieved through the use of a distributed lock from the SQL engine. This approach is great because it allows to deploy with no dependencies, but fundamentally databases are not the best tool to implement reliable distributed synchronization logic.

We would like to investigate the use of some existing OSS distributed synchronization system. Probably a good place to start would be zookeeper or potentially consul.

The work would be to

  1. Create new implementation of the GlobalLocker, and extend the configuration to make it one possible option.
  2. Create a new docker compose to start a KB stack with zookeeper
  3. Run default tests to verify behavior is as expected
  4. Extend tests to create conditions where we hit multiple requests for same accounts across different nodes.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions