# Canso Architecture

![Components Overview](/files/FVdBIn7fVEHVmvYFqxIP)

### Communication - Control Plane & Data Plane

Canso Control Plane communicates with Tenant Data Plane cluster using message queues. The diagram below shows how canso communicates with multiple tenants, also allowing each tenant to own multiple Data Plane clusters.

![Communication - Control Plane & Data Plane](/files/Obsv3N1tH56s4eWY46iS)

#### Queues

Each data plane cluster has 2 dedicated queues:

1. A **Canso Outgoing Queue** which is used to send the instructions sent by user (using Canso Web app or Python Client) from control plane to data plane.
2. A **Canso Incoming Queue** which is used to send monitoring information (which can be viewed by the user on the Canso Web App) from data plane to control plane.

#### Canso Agent

The Canso Agent runs in each Data Plane cluster, reads messages from its instruction queue and performs instructed operations in the data plane.

#### Canso Notification Subscriber

A dedicated Canso Notification Subscriber for each Data Plane cluster runs in the Control Plane. It reads monitoring information from Canso Incoming Queue and makes it available to be viewed by end users.

A dedicated Notification Subscriber ensures that each tenant gets equal priority on the control plane and is unaffected by outages/issues related to other tenants.


---

# 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://docs.canso.ai/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.
