/sync

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

Primary LanguageRustMIT LicenseMIT

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:

Examples

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

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 opencode@microsoft.com with any additional questions or comments.