Public Repository

Last pushed: 3 years ago
Short Description
Docker image for Roshi - a large-scale CRDT set implementation for timestamped events.
Full Description


A minimal Docker image to run Roshi.

Dockerfile links

What is Roshi?

Roshi implements a time-series event storage via a LWW-element-set CRDT with limited inline garbage collection. Roshi is a stateless, distributed layer on top of Redis and is implemented in Go. It is partition tolerant, highly available and eventually consistent.

Roshi is super cool.

How To Use This Image

Roshi uses Redis as its persistence layer. You will need to have a Redis instance running somewhere for Roshi to connect to. A production installation of Roshi should have at least 3 independent Redis clusters running in different failure domains. For demo purposes you can just run Roshi on a single Redis instance with zero fault tolerance. See the various readme's for more details.

Starting a Roshi instance

# Start a Redis instance named my-redis and daemonize
docker run --name my-redis -d redis

# Start a Roshi instance named my-roshi, linked to my-redis with an alias of redis_backend, exposing port 6302 to localhost
docker run --name my-roshi --link my-redis:redis_backend -p 6302:6302 roshi -redis.instances=redis_backend:6379

# In another shell you can curl /metrics to see that it's running
curl localhost:6302/metrics

# If you are using boot2docker
curl "$(boot2docker ip):6302/metrics"

This image includes EXPOSE 6302 (the default roshi port), so container linking will work.

Roshi License

View the Roshi license information.


Hey just submit a PR. Ain't no thang.

Docker Pull Command