sync icon indicating copy to clipboard operation
sync copied to clipboard

Metaparticle/Sync: Cloud native synchronization libraries using Kubernetes for Java, Javascript and .NET (and more coming soon)

Metaparticle Sync libraries.

About the library

Metaparticle is a standard library for cloud native development using containers and Kubernetes.

The Metaparticle sync is a library within Metaparticle for synchronization across multiple containers running on different machines.

Synchronization Primitives

Currently the library supports two synchronization primitives:

  • Locks, for mutual exclusion of code between different containers on different machines.
  • Leader Election, for reliably selecting a single leader from a group of candidates, and failing over if that leader fails.

Components

Metaparticle sync is made up of two components:

  • A re-usable container that can be deployed as a side-car to implement synchronization operators
  • A collection of idiomatic client libraries that users can use in their applications to implement synchronization. Currently languages supported include:
    • javascript (Nodejs)
    • python
    • java
    • C#/.NET Core

Examples

Examples for locking and leader election for each of the supported languages can be found in their respective directories.

  • javascript
  • python
  • java
  • C#/.NET Core

Details

More technical details can be found in the overview.

Contribute

There are many ways to contribute to Metaparticle

  • Submit bugs and help us verify fixes as they are checked in.
  • Review the source code changes.
  • Engage with other Metaparticle users and developers on gitter.
  • Join the #metaparticle discussion on Twitter.
  • Contribute bug fixes.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.