# Architecture

![CloudIO Platform Architectural Components](/files/-Mb8ZKlpn4LR-wI6ky1h)

## Technology Components

CloudIO Platform 4.0 is written from scratch for serverless deployments using modern scalable technologies.

### Database

All the platform metadata and the application data are persisted in a MySQL database. We are planning to add support for Oracle, MS SQL Server, DB2 & PostgreSQL within the next few months.

### RUST

The core of the platform is written in RUST. All the database interaction, transactions, workflow orchestration, job scheduling, cloud functions (javascript), and push notifications are all implemented in RUST.

### Distributed Cache

Redis is used for distributed caching

### User Interface

The user interface is built using ReactJS

### Cloud Functions

Business functionality can be extended on the server side using modern Javascript (ES2020) that runs on a secure sandboxed environment using QuickJS that is embedded within RUST.

### Microservices

3rd party integrations can be plugged in using microservices built on any language of choice as long as the service can expose either a REST endpoint or can consume a Kafka topic.

## Deployment

The platform can be deployed either on-premise or on the public/private cloud. The entire platform with all the components can be run inside a Docker container.

## Performance

The central component of the architecture is the CloudIO Server component that's written in Rust and can run start in less than 20 ms & consumes around 20 MB memory compared to about a few seconds and a few hundred MB memory for the previous Java-based architecture. At peak loads (load test with 1000 concurrent requests) the memory consumption was about 120 MB compared to 2GB+ memory.

### Instant Startup \~ 20 ms

![CloudIO Platform Startup Log](/files/-Mb5bFFiEcBJVNao-TDz)

### Low Memory Footprint \~ 20 MB

![Docker Stats after 100K+ requests consuming a few GBs of network IO](/files/-MbDWFV9i-14I04vOFK7)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://next-docs.cloudio.io/architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
