Architecture

This is designed to be used as a microservice within a larger architecture. This will take in CRUD messages for objects in 3 space, and track location, rotation, and scaling. It will also ensure that any updates are sent out on a separate port to allow streaming to all user devices.

A .proto file is included to allow generating the bindings for any language which are generated by the protocol buffer compiler (https://developers.google.com/protocol-buffers/). Alternatively, Clyman can be configured to accept JSON messages.

0-Meter (https://github.com/AO-StreetArt/0-Meter) has been developed to allow easy testing of the module with JSON message formats.

CLyman can also be deployed with Consul (https://www.consul.io/) as a Service Discovery and Distributed Configuration architecture. This requires a Consul Agent to be deployed that CLyman can connect to.

CLyman depends on Mongo (database), and Kafka (data streaming) instances in order to function.

Design

In order to allow for real-time, distributed visualization, one of the key problems that needs to be solved is allowing for real-time communication between devices regarding an object’s position, orientation, and scaling. This aims to solve that problem by providing a messaging API that is used to update objects, and a corresponding feed outbound which tells all devices about the update.

Go Home