metacosm

Code Climate GPA

Description

Metacosm is an awesome microframework for building reactive systems.

Goals

Enable quick prototyping of command-query separated architectures, and empower development of event-sourced systems.

Background

One core concept is that we use commands to update "write-only" models, which trigger events that update "read-only" view models that are used by queries.

Models only transform their state in response to commands, so their state can be reconstructed by replaying the stream of commands.

Features

  • Distributed simulations using Redis

Examples

  • Game of Life, which implements Conway's game of life using metacosm and gosu
  • Socius, a civlike using the Redis integration to communicate with a game server running the sim

Requirements

Ruby 2.2.1 or higher and Redis. Gosu dependencies are needed for the client.

Install

$ gem install metacosm

Synopsis

$ metacosm

Copyright (c) 2016 Joseph Weissman

See LICENSE for details.