# Architecture Overview

### Node Provider and dApp Provider

These entities supply resources to the network.

* **Node Provider**: Manages the infrastructure required to run nodes within the network.
* **dApp Provider**: Responsible for deploying and managing decentralized applications.

***

### Dashboard

Acts as a centralized interface for management and monitoring.

* Facilitates interaction between clients, providers, and the network.
* Enables dApp and node management through an intuitive interface.

***

### Client

Represents the end users interacting with the system.

* Communicates with the **dApp Matchmaking** layer to access appropriate nodes within the platform.

***

### dApp Matchmaking

A service layer that helps connect clients to nodes that make up the subnetwork of their session.

***

### Node

Represents the network participants that host the session logic for decentralized applications.

* In subnetworks, nodes are assigned roles as **Coordinator** or **Witness**.
* Interacts with the **Registry** to fetch dockerized session logic executables.

***

### Registry

* Accepts zipped session logic executables from clients for verification and containerization.
* Initially hosts a private Docker registry, with future plans to push images to a decentralized storage system.

***

### System Contract

A smart contract deployed on a blockchain network.

* Verifies proofs for ended sessions to determine correctness and reward distribution.
