machi/prototype/README.md

65 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

# Prototype directory
The contents of the `prototype` directory is the result of
consolidating several small & independent repos. Originally, each
small was a separate prototype/quick hack for experimentation
purposes. The code is preserved here for use as:
* Examples of what not to do ... the code **is** a bit ugly, after
all. <tt>^_^</tt>
* Some examples of what to do when prototyping in Erlang. For
example, "Let it crash" style coding is so nice to hack on quickly.
* Some code might actually be reusable, as-is or after some
refactoring.
2015-03-03 05:43:26 +00:00
The prototype code here is not meant for long-term use or
maintenance. We are unlikely to accept changes/pull requests for adding
large new features or to build full Erlang/OTP applications using this
code only.
However, pull requests for small changes, such as support for
newer Erlang versions (e.g., Erlang 17), will be gladly accepted.
We will also accept fixes for bugs in the test code.
## The corfurl prototype
The `corfurl` code is a mostly-complete complete implementation of the
CORFU server & client specification. More details on the papers about
CORFU are mentioned in the `corfurl/docs/corfurl.md` file.
This code contains a QuickCheck + PULSE test. If you wish to use it,
please note the usage instructions and restrictions mentioned in the
`README.md` file.
## The demo-day-hack prototype
2015-04-02 07:41:12 +00:00
This code in the `demo-day-hack` is expected to remain static,
as an archive of past "Demo Day" work.
See the top-level README.md file for details on work to move
much of this code out of the `prototype` directory and into real
use elsewhere in the repo.
## The tango prototype
2015-03-03 07:24:26 +00:00
A quick & dirty prototype of Tango on top of the `prototype/corfurl`
CORFU implementation. The implementation is powerful enough (barely)
to run concurrently on multiple Erlang nodes. See its `README.md`
file for limitations, TODO items, etc.
2015-03-03 11:15:00 +00:00
## The chain-manager prototype
This is a very early experiment to try to create a distributed "rough
consensus" algorithm that is sufficient & safe for managing the order
of a Chain Replication chain, its members, and its chain order.
Unlike the other code projects in this repository's `prototype`
directory, the chain management code is still under active
development. However, the chain manager code here in the `prototype`
subdirectory will remain frozen in time.
2015-03-03 11:15:00 +00:00
Efforts in April 2015 have moved the chain manager code to the "top level"
of the repository. All new work is being merged weekly into the `master`
branch, see `src/machi_chain_manager1.erl` and related source at the top of
the repo.