Internal architecture

Principles

Ryax is made to manage streams of data in a Cloud Native environment. Thus, Ryax is designed with the following goals in mind:

  1. Reliability

  2. Adaptability to any IT infrastructure and any user code

  3. Responsiveness

Ryax relies on well-known and industry-standard technologies like Kubernetes and modern Cloud Native engineering practices to deliver a great and consistent user experience.

Ryax is based on a micro-services architecture to divide responsibility, improve performances, and simplify development, we follow the principles of Domain Driven Development.

Each microservice lives as a standalone project, taking responsibility for a specific domain. With this approach, we can use the best architecture and technologies for each domain. Tests are easier to write, microservice’s lifecycle is easy to determine and we can easily grow or shrink development efforts.

Overview

Architecture diagram

At the center of Ryax, the backbone services. These services are responsible to store and transfer data and events.

Ryax’s micro-services are made to manage each Ryax domain, like workflows, users, and modules. All of this is run, controlled, and monitored by Kubernetes.

Modules are isolated in their own namespace.

Finally, users interact with Ryax through a standard REST API. Ryax can be user-operated either through its interactive web interface (WebUI) or its command-line interface (CLI). Users and customers can even build their own integration to interact with Ryax.

Depending on Kubernetes make Ryax compatible able to run on Cloud providers (like AWS, GCP, Azure…), on-premise solutions (OpenStack, VMWare…), and bare metal clusters. Multiple members of our team are certified Kubernetes experts.