What is Somata?
Somata is a protocol and framework for building software on a network of connected microservices.
A Somata service exposes methods and events that can be called or subscribed to from anywhere else in the system.
This allows for distributed architectures to create pretty much anything — from a cluster of Node.js servers running pieces of an app backend to a network of home automation devices communicating across languages and platforms.
Why Somata?
Somata helps you build better, simpler software by
- Following repeatable, modular architectural patterns
- Enforcing separation of concerns, allowing asynchronous development across a team
- Interfacing simply with specialized parts of your system running on domain-specific languages or hardware
- Exposing well-defined interfaces for simple test coverage and troubleshooting
- Enabling flexible, functionally-specific scaling strategies
How can I use it?
Somata has already been used for
- Distributed API backends Decoupling the functionality of a web server into well-defined pieces, allowing you to build using repeatable patterns and change pieces of the code very flexibly
- Home Automation Connecting Smarthings, Hue, and home built devices on a local mesh network
There are working implementations for Node.js, Python, Ruby, Go, Java, and Scala. If you would like to contribute please visit the Github organization.
To get started, install Somata and try an example.