Skip to main content

Architecture

A schema representing Juno architecture and control flow providing developer full control

The architecture of Juno is designed to give developers complete control over their data.

This is achieved by creating a unique smart contract, known as a mission control, for each developer. This smart contract is exclusively controlled by the developer and Juno has no control, rights, or access to any of the developer's creations.

Every satellite or orbiter (analytics) created in Juno follows the same pattern, where it is owned by the developer and their authorized controllers.


Permissions

The permission and ownership structure of Juno is made possible through our infrastructure, which is powered by the Internet Computer.

When a developer signs into Juno's console using Internet Identity (1), the console backend retrieves the developer's mission control (2). This information is then sent back to the developer's browser, where they can manage their mission control and satellite (3).

Juno's console flow


Modules

A module or segment — i.e. Satellite, Mission Control, and Orbiter — refers to a smart contract compiled into WebAssembly (WASM) code and deployed on the Internet Computer with Juno.

It acts as a comprehensive entity, encompassing memory, permission checks, and other Juno abstractions. These serve as endpoints that developers and users can query for various functionalities.

A really high level schema representing a Satellite architecture


Web Flow

Once deployed and accessible to your users, a satellite operates similarly to a typical web flow. Users can interact directly with it or make authorized calls once they have logged in. Although a satellite is a smart contract, its behavior is similar to a regular web application.

User and satellite interaction