# MAIN Realm

Decentraland tem tantos realms quanto existem Catalyst com serviços de comunicação, mas há um realm distinto conhecido como MAIN que existe fora da rede de Catalysts. O realm MAIN foi especificamente projetado para simplificar o processo de conexão do usuário, tornando mais fácil para os usuários interagir e se encontrar. Ele é construído com um conjunto de serviços capazes de substituir o serviço de comunicação de um nó Catalyst. Esse realm serve como destino padrão para os usuários ao fazer login no Decentraland.

![](https://github.com/decentraland/docs/blob/main/images/main-realm.png)

O [provedor de realm](https://github.com/decentraland/realm-provider) serviços expõem um [/about](https://realm-provider.decentraland.org/main/about) endpoint com uma descrição de realm de acordo com o [ADR-110: Realm description](https://adr.decentraland.org/adr/ADR-110). Isso fornece as informações para estabelecer uma conexão com a rede de gerenciamento de conteúdo, conhecida como um dos serviços do nó Catalyst, e também fornece os detalhes de conexão para os serviços de comunicação do realm MAIN.

O serviço de comunicações do MAIN é acessado através do [Conector WebSocket](https://github.com/decentraland/archipelago-workers). Este componente leve permite a interação com o restante dos componentes de backend e pode ser facilmente escalado com instâncias adicionais para acomodar uma carga de usuários em expansão, gerenciando de forma eficiente um número maior de conexões ativas. Via a conexão WebSocket, o cliente adquire os dados necessários para estabelecer uma conexão com o LiveKit Cloud, juntamente com o `islandId` atribuído pelo Archipelago Service. O Archipelago Service tem responsabilidades idênticas tanto no realm MAIN quanto no serviço de comunicações dos nós Catalyst. Ele gerencia efetivamente o processamento das posições dos usuários e sua subsequente alocação em ilhas distintas, cada uma correspondendo a uma sala Livekit, organizando assim de forma eficiente agrupamentos de usuários com base em suas localizações espaciais dentro do mundo virtual. Para maiores detalhes sobre o Archipelago Service, você pode consultar a [Archipelago](https://github.com/decentraland/docs/blob/main/contributor/communications/archipelago/README.md) página.

[NATS](https://nats.io/) funciona como um sistema de broadcast que facilita a comunicação contínua entre vários serviços. Ele pode suportar múltiplas instâncias do WebSocket Connector se comunicando com o mesmo Archipelago Service. Além disso, permite que o serviço de Stats colete estatísticas de usuários do Archipelago, como posições e agrupamentos por ilha, tornando esses dados acessíveis para utilização externa.

O serviço de estatísticas do Archipelago compartilha a mesma implementação de API que o serviço Archipelago no nó Catalyst. Você pode explorar a API neste link: [Catalyst API Specs](https://decentraland.github.io/catalyst-api-specs/#tag/Archipelago). O serviço é acessível através da seguinte URL `https://archipelago-stats.decentraland.org/` e os endpoints disponíveis estão sob o `/comms/` conforme descrito na API Spec, por exemplo: `https://archipelago-stats.decentraland.org/comms/peers`.

O [LiveKit](https://github.com/decentraland/docs/blob/main/contributor/communications/transport-types/livekit/README.md) A plataforma Cloud gerencia a tarefa complexa de trocar informações dos usuários via WebRTC e é a principal plataforma de cloud compartilhada pela maioria dos nós Catalyst para o mesmo propósito.

O conceito fundamental derivado do realm MAIN é que diferentes usuários têm a flexibilidade de se conectar a qualquer nó Catalyst para fins de gerenciamento de conteúdo (baixar scenes, wearables, emotes ou enviar atualizações de perfil) mas apesar da seleção de um nó específico de gerenciamento de conteúdo, a conexão ao serviço de comunicação **pode** ser a mesma. Como resultado, mesmo que os usuários estejam utilizando diferentes nós Catalyst como servidores de conteúdo, se eles se encontrarem em coordenadas de scene próximas, terão a capacidade de interagir entre si.
