SpecialK is...
- a decentralized, distributed storage mechanism
- a pattern language for building decentralized, distributed applications
See SpecialK/KVDB – A Pattern Language for the Web for further explanation.
To work with SpecialK you will need:
- MongoDB, version 2.6.12 (also tested with version 2.4.14, 3.2.9)
- available at https://www.mongodb.com/download-center (go to "Previous Releases")
- Erlang, version 15B03 (also tested with version R14B04) (required to run RabbitMQ)
- RabbitMQ, version 3.0.2 (also tested with version 2.7.1)
- available at http://www.rabbitmq.com/download.html (go to "Older Versions")
- Java Development Kit (JDK), version 8 (also tested with version 7)
- available at http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- alternatively, the OpenJDK can be installed using most common package managers.
- sbt
- available at http://www.scala-sbt.org/download.html
Currently, SpecialK is intended to be used in conjunction with the Agent Service and GLoSEval.
However, it can also be used as a standalone key-value store.
The following files provide an example of setting up a single node to store String values in MongoDB.
This set of tests may provide additional insight into how such a node may be used, including retrieving values using the Prolog-based query system:
A more complex usage example involving multiple nodes can be found here.
We welcome reports of any issues on the issue tracker.
We are also using JIRA to track issues for this project and the rest of the Synereo Platform: https://synereo.atlassian.net/projects/SOC/issues
- Lucius Gregory Meredith's Agents and Agency in the Internet presentation at the Scala Bay Meetup in Fall 2013.
- Synereo Development Workshops hosted on our YouTube Channel