Coaty enables powerful any-to-any collaboration between your autonomously acting IoT devices, people, and services in ever-changing scenarios.
Key features
Distributed data - remote operations
Discover, query, share, and update data on demand in a distributed system. Request execution of context-filtered remote operations.
Powerful communication patterns for any-to-any collaboration
Use event-based communication flows with one-to-many and many-to-many request-response patterns to realize decentralized prosumer scenarios. Coaty’s standardized communication event patterns are build on top of exchangeable open-standard publish-subscribe messaging protocols such as MQTT or WAMP.
Query anywhere - retrieve anywhere - persist anywhere
Seamlessly query distributed domain-specific data across decentralized components. You can retrieve data from arbitary data sources by use of a Unified Object Storage API which is part of the framework.
Smart routing of IoT data based on context
Dynamically route IoT (sensor) data from sources to actors, i.e. consumers based on context. Coaty provides rule-based routing using smart backpressure strategies negotiated between sources and actors.
Incremental & dynamic scenario evolution
Coaty removes the need for a central coordination authority by decoupling interaction between agents. You can dynamically add new agents and new features without distracting the existing system in order to adapt to your ever-changing scenarios.
Lightweight & modular architecture
Coaty favors a declarative programming style with inversion of control and distributed lifecycle management. Choose from a set of core and specialized modules to achieve operational simplicity with minimal dependencies. Connect to heterogenous system landscapes by extensible connectors.
Reactive Programming for asynchronous event handling
Coaty adopts the Reactive Programming paradigm to handle incoming asynchronous events in context. It raises the level of abstraction of your code so you can focus on the interdependence of events that define the communication business logic.
Typed object model
Model your domain data with Coaty’s platform-agnostic typed object model. It provides an extensible hierarchy of core object types for distributed data exchange. Coaty objects are JSON compatible to be interoperable between languages and platforms.
Works across languages and platforms - even in browsers
Coaty applications are interoperable between framework implementations. Coaty JS is the reference implementation targeted at JavaScript and TypeScript. It runs not only in Node.js, but even in mobile and web browsers.
Ready to use
Get started with Coaty by using its best practice examples as application skeleton. In addition, Coaty comes with all you need to know: a developer guide, coding style guide, and complete framework API documentation.
Open source and free
Coaty is being developed on GitHub. It is open source which allows you to modify and extend it according to your needs. Moreover, its permissive, industry-friendly MIT license facilitates commercial use.