All Projects → clojusc → mesomatic

clojusc / mesomatic

Licence: ISC License
A simple and idiomatic Clojure facade around the Mesos JAVA API

Programming Languages

clojure
4091 projects

Projects that are alternatives of or similar to mesomatic

realtimemap-dotnet
A showcase for Proto.Actor - an ultra-fast distributed actors solution for Go, C#, and Java/Kotlin.
Stars: ✭ 47 (-30.88%)
Mutual labels:  distributed-systems
Knowledge-Discovery-Agents
A Goal-Oriented Approach to Knowledge Discovery in Multi-Agent Systems
Stars: ✭ 38 (-44.12%)
Mutual labels:  distributed-systems
core
Microservice abstract class
Stars: ✭ 37 (-45.59%)
Mutual labels:  distributed-systems
chapar
A framework for verification of causal consistency for distributed key-value stores and their clients in Coq [maintainer=@palmskog]
Stars: ✭ 29 (-57.35%)
Mutual labels:  distributed-systems
open-box
Generalized and Efficient Blackbox Optimization System [SIGKDD'21].
Stars: ✭ 174 (+155.88%)
Mutual labels:  distributed-systems
reactive-pipes
A thin library around Reactive Extensions to simplify writing evented applications in C#.
Stars: ✭ 12 (-82.35%)
Mutual labels:  distributed-systems
nats-account-server
A simple HTTP/NATS server to host JWTs for nats-server 2.0 account authentication.
Stars: ✭ 62 (-8.82%)
Mutual labels:  distributed-systems
CrashTuner
CrashTuner(SOSP2019)
Stars: ✭ 26 (-61.76%)
Mutual labels:  distributed-systems
DTC
DTC is a high performance Distributed Table Cache system designed by JD.com that offering hotspot data cache for databases in order to reduce pressure of database and improve QPS.
Stars: ✭ 21 (-69.12%)
Mutual labels:  distributed-systems
Saga
Saga pattern implementation in Kotlin build in top of Kotlin's Coroutines.
Stars: ✭ 24 (-64.71%)
Mutual labels:  distributed-systems
v6d
vineyard (v6d): an in-memory immutable data manager. (Project under CNCF)
Stars: ✭ 557 (+719.12%)
Mutual labels:  distributed-systems
Layr
A decentralized (p2p) file storage system built atop Kademlia DHT that enforces data integrity, privacy, and availability through sharding, proofs of retrievability, redundancy, and encryption, with smart-contract powered incentive scheme
Stars: ✭ 90 (+32.35%)
Mutual labels:  distributed-systems
elixir cluster
Distributed Elixir Cluster on Render with libcluster and Mix Releases
Stars: ✭ 15 (-77.94%)
Mutual labels:  distributed-systems
epaxos
A pluggable implementation of the Egalitarian Paxos Consensus Protocol
Stars: ✭ 39 (-42.65%)
Mutual labels:  distributed-systems
road-to-orleans
This repository illustrates the road to orleans with practical, real-life examples. From most basic, to more advanced techniques.
Stars: ✭ 55 (-19.12%)
Mutual labels:  distributed-systems
Raf
An Elixir library which implements the Raft consensus protocol
Stars: ✭ 33 (-51.47%)
Mutual labels:  distributed-systems
XLearning-GPU
qihoo360 xlearning with GPU support; AI on Hadoop
Stars: ✭ 22 (-67.65%)
Mutual labels:  distributed-systems
campaign
Comic Relief Campaign Distribution in Drupal 8
Stars: ✭ 22 (-67.65%)
Mutual labels:  distributed-systems
Kites
🪁 A consistency, partition tolerance completed distributed KV store, implementation of the Raft distributed consensus protocol and Kotlin.
Stars: ✭ 41 (-39.71%)
Mutual labels:  distributed-systems
ring-election
A node js library with a distributed leader/follower algorithm ready to be used
Stars: ✭ 92 (+35.29%)
Mutual labels:  distributed-systems

mesomatic

Build StatusClojars ProjectClojure version

A simple and idiomatic Clojure facade around the Mesos JAVA API

Contents

  • About
  • Resources
  • Usage
  • Examples
  • Namespaces
  • Type Conversions
  • Release Notes
  • Contributor Resources
  • Donating

About

Mesomatic provides facilities to interact with Apache Mesos from clojure. It provides a simple and idiomatic facade around the Mesos JAVA API and facilities to help when writing mesos frameworks.

Mesomatic versions match the API version they target, a trailing minor indicates the patch release number, for instance version 1.0.1-r0 will target mesos 1.0.1.

Note that the clojusc Github org has volunteered to maintain the library originally created by pyr at pyr/mesomatic. The new location, clojusc/mesomatic, is now the offical home for the library.

Resources

Usage

Add this to your leiningen profile:

:dependencies [[clojusc/mesomatic "1.0.1-r1"]]

If you want to use the core.async facade, you will need to pull it in as well:

:dependencies [[clojusc/mesomatic "1.0.1-r1"]
               [clojusc/mesomatic-async "1.0.1-r1"]]

Examples

Be sure to examine the example frameworks built with mesomatic.

Namespaces

  • mesomatic.types: contains a facade to and from all protobuf types.
  • mesomatic.scheduler: facades for schedulers and scheduler-drivers
  • mesomatic.executor: facades for executors and executor-drivers
  • mesomatic.async.executor: produce executor callbacks on a channel
  • mesomatic.async.scheduler: produce scheduler callbacks on a channel
  • mesomatic.helpers: utility helpers for cluster decisions

Type Conversions

To go to and from protobuf types, mesomatic uses two simple functions:

  • pb->data: yields a data structure from a mesos type, usually in the form of a record.
  • data->pb: converts a data structure to a mesos type.
  • ->pb: convert a plain map to a mesos type hinted at by a keyword

By yielding records, mesomatic provides elements which are homomorphic to maps and can easily be converted back to protobuf.

Special Cases

A few cases do not yield records:

  • Scalar values (Protos.Value.Scalar) yield doubles.
  • All enums yield keywords.
  • Set values (Protos.Value.Set) yield sets.
  • Some types containing a single repeated field are unrolled as a seq of their content, such as Protos.Value.Ranges.

Release Notes

1.0.1

  • Target mesos 1.0.1
  • Support for GPU resources
  • Updates for API changes in Java bindings

Contributor Resources

Donating

A donation account for supporting development on this project has been set up on Liberapay here:

You can learn more about Liberapay on its Wikipedia entry or on the service's "About" page.

https://liberapay.com/clojusc-mesomatic/donate

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].