Consigna y alcance

Enunciado del trabajo

Enunciado y alcance.

Reglas del sistema base y requisitos de este trabajo. Consultá los casos, explorá los diagramas y descargá el enunciado original.

Asteria Online · fuente original
01 · Contexto

MMO medieval, persistente y distribuido

Jugadores entran a instancias pagando oro, combaten contra un jefe y reciben recompensas si lo derrotan. Los ítems pueden venderse en un mercado global; el oro también se compra con dinero real.

02 · Infraestructura

3 datacenters

Brasil, Estados Unidos y Zúrich. El cliente y los centros se comunican por gRPC. Las instancias pueden reubicarse y los eventos globales comparten estado entre los tres.

03 · Datos y negocio

Estado y restricciones

Datos personales y bancarios: solo en el datacenter hogar. Cambios de oro y objetos: conservar 90 días. Durante saturación se priorizan sesiones existentes.

04 · Fallas a cubrir

Cliente e infraestructura

Desconexión, latencia, caída de módulos o datacenters y particiones de red. Seguridad queda fuera de esta versión por la actualización del docente.

Material original

Documentos de referencia

El contenido del TP conserva los problemas, fallas, garantías y soluciones originales; la organización por módulos es una propuesta de integración.

Qué problema resuelve cada caso.

Seleccioná un caso para consultar el problema que resuelve.

7 problemas · 22 fallas · 8 soluciones

P · Problema

F · Fallas

G · Garantías

Interés de negocio protegido, sin describir el mecanismo técnico.

S · Solución

Leer descripción completa

Trade-off

Interacción de módulos

6 pasos
Cliente móvilInstanciasLogs replicadosCombateRecompensasOro / inventario01Enviar golpe02Publicar golpe03Consumir en orden04Registrar resultado05Procesar premios06Acreditar por clave
Elegí una flecha o avanzá por pasos.

El caso seleccionado se conserva entre Problema, Falla, Garantía, Solución y Trade-off.

Un sistema, módulos con responsabilidades claras.

Seleccioná un módulo para ver qué hace, qué estado administra y con quién interactúa. El esquema es lógico: no representa servidores individuales.

7 procesos · 3 datacenters

Mapa de módulos

AccesoJuegoEconomíaSoporte
ASTERIA ONLINEMódulos lógicos · responsabilidades e interacciones01 ACCESO Y DESCUBRIMIENTO02 EJECUCIÓN DEL JUEGO03 ECONOMÍA DEL JUEGO04 PERSISTENCIA Y RECUPERACIÓNCliente móvil → Acceso y sesiones: gRPCAcceso y sesiones → Directorio de zonas: consultaDirectorio de zonas → Gestor de ingreso: selecciónGestor de ingreso → Gestor de instancias: ingresoGestor de instancias → Procesador de combate: accionesProcesador de combate → Servicio de recompensas: resultadoServicio de recompensas → Oro e inventario: acreditarAcceso y sesiones → Mercado: ventaAcceso y sesiones → Pagos reales: pagoMercado → Oro e inventario: transferenciaPagos reales → Oro e inventario: acreditaciónGestor de ingreso → Oro e inventario: oro de entradaGestor de instancias → Directorio de zonas: ocupaciónGestor de ingreso → WAL y pertenencia: WAL y registroProcesador de combate → Logs replicados: golpes y tiempoMercado → Logs replicados: comprasDirectorio de zonas → Logs replicados: cambiosServicio de recompensas → Logs replicados: offsetOro e inventario → Registro de auditoría: registro 90 dRecuperación → Gestor de instancias: reubicaciónRecuperación → Acceso y sesiones: sesionesCliente móvilAcciones y reintentosAcceso / sesionesAdmisión y reconexiónDirectorioListado local de zonasIngresoCobro y pertenenciaInstanciasCreación, cupo, ubicaciónCombateGolpes, tiempo y resultadoRecompensasEntrega idempotenteMercadoCompra y venta de ítemsPagos realesCompra de oro y OutboxOro / inventarioSaldos y propiedadRecuperaciónReubicar ejecución y sesionesWAL / registroSolicitudes y jugador-instanciaLogs replicadosOrden, offset y recuperaciónAuditoría 90 díasCambios de oro y objetosLas líneas de soporte son dependencias lógicas. La coordinación concreta se detalla por proceso.
Rueda para zoom · arrastrá para mover
Responsabilidad

Gestor de ingreso

Coordina validación de cupo, cobro de entrada y registro único del jugador; resuelve reintentos por requestId.

Estado administrado
Solicitud y resultado en WAL; vinculación jugador-instancia por quórum.
Interactúa con
Los módulos separan responsabilidades. La arquitectura concreta todavía requiere cerrar límites de transacciones y recuperación.

Líneas continuas: interacción entre funciones. Líneas punteadas: persistencia o recuperación. Los almacenamientos son responsabilidades lógicas y pueden implementarse mediante componentes replicados.

Tres datacenters. Distintas reglas de coordinación.

El estado personal y bancario permanece en el hogar; las instancias y el estado del juego pueden operar entre datacenters según su función.

Topología lógica
BRASILInstancia localDatos personales + pagospermanecen aquíESTADOS UNIDOSServicios localesDatos personales + pagospermanecen aquíZÚRICHServicios localesDatos personales + pagospermanecen aquígRPC entre datacenters · directorio replicado
Escenario seleccionado

Instancia normal

Una mazmorra se ejecuta en un datacenter. Por defecto nace en el hogar de quien la crea y puede ser reubicada si ese datacenter falla.

Directorio · Cada centro consulta su réplica local.
Pertenencia · El registro único sigue necesitando mayoría.
Datos bancarios · No se trasladan con la instancia.

Ubicación del estado

Responsabilidades de persistencia
EstadoUbicación / políticaMecanismo
Datos personales y bancariosSolo en el datacenter hogar.Base local replicada entre nodos.
Pagos y OutboxDatacenter hogar del jugador.Pago + evento pendiente en misma transacción.
Pertenencia jugador-instanciaEstado coordinado en los tres datacenters.Mayoría 2/3 para registrar cambios.
Eventos de combate y mercadoParticionados por instancia o por ítem.Logs replicados y offsets de consumidores.
Directorio de zonasUna copia local por datacenter.Actualización asíncrona desde logs.
Oro e inventarioEstado de juego; puede moverse entre datacenters.Consistencia y atomicidad entre operaciones por concretar.
Cambios económicos (90 días)Requerimiento de negocio, sin ubicación definida.Auditoría aún no detallada.