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.
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.