> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/contributor/contributor-es/arquitectura/services.md).

# Servicios de backend

Esta página ofrece una visión general completa de todos los servicios backend de Decentraland, sus roles arquitectónicos y cómo interactúan dentro del ecosistema. Para obtener especificaciones detalladas de la API y endpoints, consulta la [Referencia de API](https://github.com/decentraland/docs/tree/main/apis/README.md) sección.

## Arquitectura de servicios

El backend de Decentraland está compuesto por microservicios distribuidos organizados en capas lógicas:

* **Capa descentralizada** - Red de Catalyst e infraestructura de entrega de contenido
* **Capa de comunicaciones en tiempo real** - Descubrimiento de servicios y comunicaciones peer-to-peer
* **Servicios de funcionalidad** - Funcionalidad orientada al usuario (contenido, economía, gamificación)
* **Servicios principales** - Infraestructura esencial de la plataforma (auth, marketplace, notifications)

***

## Capa descentralizada

### Catalyst

**Propósito**: Red descentralizada de entrega de contenido

La red de Catalyst forma la base de la infraestructura de contenido de Decentraland. Cada nodo de Catalyst es un servidor completo que proporciona:

* **Content Server** - Almacenamiento y recuperación de Entities (escenas, perfiles, wearables)
* **Lambdas Service** - Endpoints de utilidad y consultas de contenido
* **Communications Server** - Transporte de mensajes en tiempo real

**Rol en la arquitectura**: Los nodos de Catalyst están distribuidos geográficamente y son sin permisos. La red proporciona redundancia y disponibilidad del contenido sin control central.

**Integraciones clave**:

* Realm Provider - Anuncia la disponibilidad de los nodos
* Asset Bundle Registry - Activa la optimización de assets en el despliegue
* Archipelago Workers - Proporciona datos de islas/clústeres

**Referencia de API**: [Catalyst API](https://github.com/decentraland/docs/tree/main/apis/catalyst/overview/README.md)

### Lamb2

**Propósito**: Utilidades de Lambda y funciones serverless

Lamb2 proporciona endpoints de utilidad para el consumo de contenido y consultas que complementan al Content Server:

* Agregación y filtrado de escenas
* Consultas de perfil con alternativas de respaldo
* Comprobaciones de estado y salud

**Rol en la arquitectura**: Actúa como una capa de conveniencia sobre el acceso directo a Entities del Content Server, proporcionando patrones de consulta de mayor nivel que los clients suelen necesitar.

**Referencia de API**: [Lamb2 API](https://github.com/decentraland/docs/tree/main/apis/lamb2/overview/README.md)

***

## Capa de comunicaciones en tiempo real

### Realm Provider

**Propósito**: Descubrimiento de servicios y selección de realms

Realm Provider es el punto de entrada para todos los clients de Decentraland. Implementa una selección inteligente de realms basada en:

* **Optimización geográfica** - Dirige a los usuarios a los nodos de Catalyst más cercanos
* **Monitoreo de salud** - Filtra nodos no saludables o sobrecargados
* **Seguimiento de capacidad** - Proporciona recuentos de usuarios en tiempo real por realm
* **Agregación de escenas populares** - Identifica ubicaciones populares en todos los realms

**Rol en la arquitectura**: Fuente única de verdad para la infraestructura disponible. Los clients la consultan una sola vez al iniciar para descubrir todos los endpoints de servicios (Catalyst, Comms, BFF).

**Integraciones clave**:

* Consulta periódicamente todos los nodos de Catalyst
* Agrega estadísticas de Archipelago
* Proporciona una vista unificada de la red distribuida

**Referencia de API**: [Realm Provider API](https://github.com/decentraland/docs/tree/main/apis/realm-provider/overview/README.md)

### Comms Gatekeeper

**Propósito**: Control de acceso para voz y video

Gatekeeper gestiona el acceso a los servidores de medios de LiveKit para chat de voz y video:

* **Generación de tokens** - Crea tokens de acceso con tiempo limitado y permisos específicos
* **Administración de escenas** - Gestiona los permisos de admin y los bloqueos de escenas
* **Gestión de streaming** - Controla el acceso al streaming en vivo y las claves RTMP
* **Controles de privacidad** - Hace cumplir los permisos de chat de voz privado

**Rol en la arquitectura**: Capa de seguridad entre los clients y la infraestructura de medios. Evita el acceso no autorizado mientras habilita modelos de permisos flexibles (basados en escenas, privados, comunitarios).

**Integraciones clave**:

* LiveKit - Emite tokens JWT para el acceso al servidor de medios
* Worlds API - Valida la propiedad del world para los permisos de admin
* Signed Fetch - Autentica todas las solicitudes mediante firmas de wallet

**Referencia de API**: [Comms Gatekeeper API](https://github.com/decentraland/docs/tree/main/apis/comms-gatekeeper/overview/README.md)

### Archipelago Workers

**Propósito**: Agrupación de comunicaciones y enrutamiento de mensajes

Archipelago implementa el protocolo de agrupación basado en proximidad que agrupa a los jugadores cercanos en "islas":

* **Transporte WebSocket** - Mantiene conexiones persistentes con los clients
* **Seguimiento de posición** - Supervisa las ubicaciones de los jugadores en tiempo real
* **Formación de islas** - Agrupa dinámicamente a los jugadores según la distancia
* **Enrutamiento de mensajes** - Reenvía mensajes solo a los miembros de la isla

**Componentes de la arquitectura**:

* **WebSocket Connector** - Gestiona las conexiones de los clients y la autenticación
* **Archipelago Core** - Implementa el algoritmo de agrupación y la gestión de islas
* **Servicio de estadísticas** - Proporciona métricas de conexión y recuentos de usuarios
* **Integración con NATS** - Publica actualizaciones de posición y enruta mensajes

**Rol en la arquitectura**: Optimiza las comunicaciones peer-to-peer limitando la difusión de mensajes. En lugar de emitir mensajes a todos los usuarios en un realm, los mensajes solo llegan a los jugadores dentro del rango de interacción.

**Integraciones clave**:

* Broker de mensajes NATS - Enrutamiento distribuido de mensajes
* Realm Provider - Proporciona estadísticas de islas
* Places API - Datos de recuento de usuarios para escenas populares

**Referencia de API**: [Archipelago Workers API](https://github.com/decentraland/docs/tree/main/apis/archipelago-workers/overview/README.md)

***

## Servicios de funcionalidad

### Worlds

**Propósito**: Alojamiento de escenas aisladas fuera de la cuadrícula principal

Worlds permite a los usuarios desplegar escenas en entornos aislados:

* **Worlds con nombre** - Accesibles mediante URLs personalizadas (por ejemplo, `world.dclworlds.com`)
* **Worlds privados** - Control de acceso restringido por NFT
* **Permisos de Worlds** - Derechos de admin y despliegue gestionados por el owner

**Rol en la arquitectura**: Amplía el modelo de contenido de Decentraland más allá de la cuadrícula fija de LAND. Cada world es una escena independiente con sus propios canales de comunicación y control de acceso.

**Integraciones clave**:

* Consulta indexadores de blockchain para verificar la propiedad de NFT
* Publica actualizaciones del world en NATS para la sincronización en tiempo real de los clients
* Se integra con Comms Gatekeeper para salas de chat de voz
* Activa la canalización de procesamiento de assets en el despliegue

**Referencia de API**: [Worlds API](https://github.com/decentraland/docs/tree/main/apis/worlds/overview/README.md)

### Eventos

**Propósito**: Gestión y descubrimiento de eventos dentro del world

Gestiona todo el ciclo de vida de los eventos virtuales:

* **CRUD de eventos** - Creación, actualizaciones y programación
* **Seguimiento de asistentes** - Participación de usuarios y RSVPs
* **Descubrimiento** - Consultas y filtrado basados en el tiempo
* **Notificaciones** - Integración con Events Notifier

**Rol en la arquitectura**: Proporciona contexto temporal al metaverso. Los eventos impulsan el descubrimiento y la participación de los usuarios al destacar experiencias sensibles al tiempo.

**Referencia de API**: [Events API](https://github.com/decentraland/docs/tree/main/apis/events/overview/README.md)

### Places

**Propósito**: Descubrimiento y curación de puntos de interés

Agrega y cura ubicaciones interesantes en todo Decentraland:

* **Escenas populares** - Popularidad en tiempo real basada en el recuento de usuarios
* **Lugares destacados** - Ubicaciones seleccionadas editorialmente
* **Búsqueda y filtrado** - Descubrimiento por etiquetas, categorías
* **Metadatos de POI** - Descripciones, miniaturas, coordenadas

**Rol en la arquitectura**: Resuelve el problema del descubrimiento en un gran mundo abierto. Agrega datos de múltiples fuentes para ayudar a los usuarios a encontrar contenido atractivo.

**Integraciones clave**:

* Catalyst - Metadatos de escena e información de despliegue
* Archipelago Stats - Recuentos de usuarios en tiempo real por escena
* Comms Gatekeeper - Disponibilidad y estado del realm

**Referencia de API**: [Places API](https://github.com/decentraland/docs/tree/main/apis/places/overview/README.md)

### Atlas Server

**Propósito**: Datos del mapa y visualización de parcelas

Proporciona datos completos del mapa del mundo:

* **Propiedad de parcelas** - Datos de LAND indexados en la blockchain
* **Metadatos de escena** - Nombres y coordenadas de escenas desplegadas
* **Map tiles** - Imágenes de tiles pre-renderizadas para mostrar en la UI
* **Consultas espaciales** - Encuentra parcelas por coordenadas o owner

**Rol en la arquitectura**: Proporciona el índice espacial para la cuadrícula de LAND de Decentraland. Es esencial para las UI de mapa y la navegación espacial.

**Referencia de API**: [Atlas Server API](https://github.com/decentraland/docs/tree/main/apis/atlas-server/overview/README.md)

### Camera Reel

**Propósito**: Gestión de capturas de pantalla e imágenes generadas por los users

Gestiona las capturas de pantalla e imágenes de los users:

* **Carga de imágenes** - Almacenamiento de imágenes autenticado
* **Organización de la galería** - Colecciones de capturas de pantalla de los users
* **Metadatos** - Ubicación de la escena, marca de tiempo, etiquetas

**Rol en la arquitectura**: Permite compartir contenido y funciones sociales en torno a la fotografía generada por los users.

**Referencia de API**: [Camera Reel API](https://github.com/decentraland/docs/tree/main/apis/camera-reel/overview/README.md)

### Exploration Games

**Propósito**: Gamificación de onboarding y tutoriales

Sistema de misiones interactivas para el onboarding de nuevos users:

* **Seguimiento de misiones** - Progreso a través de las misiones del tutorial
* **Finalización de desafíos** - Verificación de tareas
* **Integración de recompensas** - Conecta con el sistema de recompensas

**Rol en la arquitectura**: Reduce la fricción para los nuevos users al proporcionar una introducción estructurada y orientada a objetivos a las funciones de Decentraland.

**Referencia de API**: [Exploration Games API](https://github.com/decentraland/docs/tree/main/apis/exploration-games/overview/README.md)

***

## Servicios principales

### Servidor de autenticación

**Propósito**: Autenticación basada en wallet y gestión de sesiones

Implementa el modelo de autenticación de Decentraland centrado primero en la wallet:

* **Verificación de firma** - Valida firmas de wallets de Ethereum
* **Emisión de tokens JWT** - Genera tokens de sesión
* **Validación de tokens** - Verifica tokens para recursos protegidos
* **Ciclo de vida de la sesión** - Renovación y expiración de tokens

**Rol en la arquitectura**: Proporciona verificación de identidad descentralizada. Los users se autentican mediante firmas de wallet en lugar de contraseñas, alineándose con los principios de Web3.

**Flujo de autenticación**:

1. El client solicita un desafío
2. El user firma el desafío con la wallet
3. Auth Server verifica la firma y emite el JWT
4. El client incluye el JWT en las solicitudes API posteriores

**Referencia de API**: [Auth Server API](https://github.com/decentraland/docs/tree/main/apis/auth-server/overview/README.md)

### Servicio Social

**Propósito**: Grafo social y gestión de comunidades

Gestiona las relaciones sociales y las comunidades:

* **Sistema de amigos** - Solicitudes, aprobaciones, listas de amigos
* **Lista de bloqueados** - Bloqueo de users y privacidad
* **Comunidades** - Pertenencia a grupos y descubrimiento
* **Estado en tiempo real** - Notificaciones de amigos en línea/fuera de línea mediante NATS
* **Mensajería privada** - Infraestructura de mensajes directos

**Rol en la arquitectura**: Proporciona la capa social que transforma Decentraland de un mundo virtual en un metaverso social.

**Integraciones clave**:

* Catalyst Client - Obtiene datos de perfil de los amigos
* NATS - Publica actualizaciones de estado de amigos
* Archipelago - Consulta el estado en línea y las ubicaciones

**Referencia de API**: [Social Service API](https://github.com/decentraland/docs/tree/main/apis/social-service/overview/README.md)

### Marketplace Server

**Propósito**: Integración del marketplace de NFT

Backend para el marketplace de wearables y emotes de Decentraland:

* **Consultas de listings** - Explorar y buscar items del marketplace
* **Historial de transacciones** - Registros de compra
* **Datos de precios** - Precios y tendencias del mercado
* **Metadatos de colección** - Colecciones de wearables y emotes

**Rol en la arquitectura**: Conecta los datos de NFT en la blockchain con una UI de marketplace fácil de usar. Indexa eventos de blockchain para consultas rápidas.

**Referencia de API**: [Marketplace Server API](https://github.com/decentraland/docs/tree/main/apis/marketplace-server/overview/README.md)

***

## Servicios de assets

### Asset Bundle Registry

**Propósito**: Gestión optimizada de assets

Registro de paquetes de assets optimizados para la plataforma:

* URLs de paquetes de assets por plataforma
* Versionado
* Distribución por CDN

**Referencia de API**: [Asset Bundle Registry API](https://github.com/decentraland/docs/tree/main/contributor/apis/asset-bundle-registry/README.md)

**Componentes del sistema**:

* **Convertidor de Asset Bundle** - Compila paquetes específicos de la plataforma
* **Generadores de LODs** - Crea variantes de nivel de detalle

**Flujo del proceso**:

```mermaid
sequenceDiagram
    participante Catalyst
    participant Queue as Cola de despliegues
    participante Converter como AB Converter
    participante Registry
    
    Catalyst->>Queue: Nuevo despliegue
    Queue->>Converter: Procesar assets
    Converter->>Converter: Compilar paquetes
    Converter->>Registry: Registrar paquetes
```

### Camera Reel

**Propósito**: Gestión de capturas de pantalla e imágenes

Gestión de contenido generado por los users:

* Almacenamiento de capturas de pantalla
* Carga de imágenes
* Organización de la galería

**Referencia de API**: [Camera Reel API](https://github.com/decentraland/docs/tree/main/contributor/apis/camera-reel/README.md)

### Credits Server

**Propósito**: Moneda virtual y economía

Gestiona el sistema de créditos virtuales de Decentraland:

* **Seguimiento de saldo** - Saldos de créditos de los users
* **Libro mayor de transacciones** - Transferencias y gasto de créditos
* **Integración de compras** - Conversión de fiat a créditos
* **Sincronización con blockchain** - Consulta indexadores para saldos on-chain

**Rol en la arquitectura**: Proporciona una alternativa de moneda con menos fricción que los tokens de blockchain para compras y funciones dentro del world.

**Referencia de API**: [Credits Server API](https://github.com/decentraland/docs/tree/main/apis/credits-server/overview/README.md)

### Badges

**Propósito**: Sistema de logros y gamificación

Otorgamiento de badges impulsado por eventos:

* **Definiciones de badges** - Logros disponibles
* **Inventario del user** - Badges obtenidos por user
* **Otorgamiento automático** - Otorgamiento de badges activado por eventos

**Componentes de la arquitectura**:

* **Badges API** - Consultas de badges e inventarios de users
* **Procesador de insignias** - Escucha Events Notifier y otorga badges

**Rol en la arquitectura**: Gamifica la participación de los users a través de logros. Proporciona visibilidad y reconocimiento para las actividades de los users.

**Referencia de API**: [Badges API](https://github.com/decentraland/docs/tree/main/apis/badges/overview/README.md)

### API de recompensas

**Propósito**: Distribución de recompensas NFT basada en campañas

Gestiona campañas promocionales de recompensas NFT:

* **Gestión de campañas** - Programas de recompensas por tiempo limitado
* **Verificación de elegibilidad** - Comprueba la calificación del user
* **Coordinación del airdrop** - Distribución de NFT a users elegibles
* **Analytics** - Seguimiento de la participación en campañas

**Rol en la arquitectura**: Permite campañas de marketing y adquisición de users mediante recompensas NFT.

**Referencia de API**: [API de recompensas](https://github.com/decentraland/docs/tree/main/apis/rewards/overview/README.md)

### Notifications Workers

**Propósito**: Sistema de entrega de notificaciones para users

Infraestructura de notificaciones multicanal:

* **Notificaciones dentro de la app** - Consultas de la bandeja de entrada de notificaciones
* **Notificaciones por email** - Integración con SendGrid
* **Notificaciones push** - Alertas móviles y de escritorio
* **Seguimiento del estado de lectura** - Marcar notificaciones como leídas/no leídas

**Componentes de la arquitectura**:

* **Bandeja de entrada de notifications** - API para consultar notificaciones de users
* **Notifications Processor** - Genera notificaciones a partir de Events Notifier

**Rol en la arquitectura**: Mantiene a los users comprometidos mediante alertas oportunas sobre la actividad de amigos, eventos, recompensas y actualizaciones del sistema.

**Referencia de API**: [Notifications Workers API](https://github.com/decentraland/docs/tree/main/apis/notifications-workers/overview/README.md)

### Events Notifier

**Propósito**: Bus de eventos para eventos de la plataforma

Sistema centralizado de publicación de eventos que activa acciones downstream:

* **Eventos de users** - Inicio de sesión, compras, despliegues
* **eventos del World** - Actualizaciones de escenas, acciones de admin
* **Eventos del sistema** - Mantenimiento, actualizaciones

**Rol en la arquitectura**: Desacopla a los productores de eventos de los consumidores. Los servicios publican eventos sin saber quién los procesa, lo que habilita arquitecturas extensibles.

**Integraciones downstream**:

* Notifications Processor - Crea notificaciones para users
* Badges Processor - Otorga badges de logros
* Rewards API - Rastrea la elegibilidad de campañas

**Referencia de API**: [Events Notifier API](https://github.com/decentraland/docs/tree/main/apis/events-notifier/overview/README.md)

***

## Patrones de interacción entre servicios

### Patrones comunes de integración

#### Catalyst Client Library

Muchos servicios backend usan la **biblioteca Catalyst Client** para interactuar con la red descentralizada de Catalyst:

* **Servicio Social** - Obtiene datos de perfil de users
* **Events API** - Consulta metadatos de escena
* **Places** - Agrega información de escenas
* **Asset Bundle Registry** - Escucha eventos de despliegue

Esta librería abstrae la consulta multi-nodo y la lógica de failover.

#### Broker de mensajes NATS

Las actualizaciones en tiempo real y la comunicación asíncrona fluyen a través de NATS:

* **Servicio Social** - Publica cambios de estado de amigos
* **Worlds** - Difunde actualizaciones de configuración del mundo
* **Archipelago** - Enruta actualizaciones de posición entre islas
* **Events Notifier** - Publica eventos de la plataforma

NATS permite que los servicios se comuniquen sin acoplamiento directo.

#### Indexadores de blockchain

Los servicios consultan indexers (no la blockchain directamente) por rendimiento:

* **Worlds** - Verifica la propiedad del NFT NAME
* **Atlas** - Obtiene los datos de la parcela LAND
* **Credits Server** - Comprueba los saldos de tokens
* **API de recompensas** - Verifica las condiciones de elegibilidad

Las consultas directas a la blockchain serían demasiado lentas para APIs en tiempo real.

### Pipeline de despliegue de contenido

Cuando un usuario despliega contenido en Catalyst, varios servicios posteriores lo procesan:

```mermaid
flowchart TB
    Deploy[El usuario despliega contenido]
    Catalyst[Nodo Catalyst]
    Queue[Cola de despliegue]
    
    subgraph Processing
        AB[Convertidor de Asset Bundle]
        Profile[Generador de imagen de perfil]
        Badges[Procesador de insignias]
        Events[Notificador de eventos]
    end
    
    Deploy --> Catalyst
    Catalyst --> Queue
    Queue --> AB
    Queue --> Profile
    Queue --> Events
    Events --> Badges
```

**Pasos del pipeline**:

1. **Catalyst** - Almacena datos de entidad sin procesar
2. **Cola de despliegue** - Activa el procesamiento asíncrono
3. **Convertidor de Asset Bundle** - Genera bundles de Unity optimizados
4. **Generador de imagen de perfil** - Renderiza miniaturas del avatar (para entidades de perfil)
5. **Events Notifier** - Publica el evento de despliegue
6. **Procesador de insignias** - Comprueba si hay insignias de logro de despliegue

### Matriz de dependencias de servicios

| Servicio                  | Dependencias principales     | Proporciona datos a             |
| ------------------------- | ---------------------------- | ------------------------------- |
| Catalyst                  | Ninguna (descentralizado)    | Todos los servicios             |
| Realm Provider            | Catalyst, Archipelago Stats  | Todos los clientes              |
| Servidor de autenticación | Ninguno                      | Todos los servicios protegidos  |
| Archipelago Workers       | NATS, LiveKit                | Realm Provider, Places          |
| Comms Gatekeeper          | LiveKit, Worlds API          | Clientes (generación de tokens) |
| Worlds                    | Catalyst, NATS, Blockchain   | Gatekeeper, Clients             |
| Servicio Social           | Catalyst, NATS, Archipelago  | Clients                         |
| Places                    | Catalyst, Archipelago, Comms | Clients                         |
| Events Notifier           | Ninguno                      | Notifications, Badges, Rewards  |
| Asset Bundle Registry     | Catalyst, Deployment Queue   | Clientes (activos optimizados)  |
| Notifications Workers     | Events Notifier, SendGrid    | Clients                         |

***

## Documentación relacionada

### Architecture

* [Descripción general de la arquitectura](/contributor/contributor-es/arquitectura/architecture.md) - Arquitectura completa del sistema
* [Catalyst Network](/contributor/contributor-es/arquitectura/catalyst.md) - Distribución descentralizada de contenido
* [Infraestructura](/contributor/contributor-es/arquitectura/infrastructure.md) - Sistemas de soporte (NATS, LiveKit, bases de datos)

### Referencias de API

* [Documentación de la API](https://github.com/decentraland/docs/tree/main/apis/README.md) - Especificaciones completas de la API
* [Autenticación](https://github.com/decentraland/docs/tree/main/contributor/auth/authchain.md) - Flujos de autenticación basados en Wallet
* [Comunicaciones](https://github.com/decentraland/docs/tree/main/contributor/comms/overview.md) - Protocolos de mensajería en tiempo real

### Desarrollo

* [Contributor Guides](https://github.com/decentraland/docs/tree/main/contributor/contributor-guides/overview.md) - Flujos de trabajo de desarrollo
* [Guía de pruebas](https://github.com/decentraland/docs/tree/main/contributor/practice/testing.md) - Prácticas de pruebas de servicios


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/contributor/contributor-es/arquitectura/services.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
