Una arquitectura RPC segura para Laravel basada en un único Gateway, descubrimiento automático de operaciones y aislamiento multi-tenant.
Laravel Secure Domain Gateway (LSDG) es una arquitectura diseñada para simplificar el desarrollo de aplicaciones empresariales en Laravel mediante un modelo RPC seguro.
En lugar de crear decenas o cientos de endpoints REST, toda la aplicación expone un único Gateway que recibe una operación ( OperationId ) y sus parámetros.
El Gateway se encarga automáticamente de:
-
localizar la operación;
-
validar la petición;
-
autenticar al usuario o servicio;
-
aplicar las políticas de autorización;
-
ejecutar el
FormRequest; -
invocar el Controller; • devolver una respuesta uniforme.
El desarrollador únicamente implementa la lógica de negocio.
LSDG ha sido diseñado para conseguir:
-
reducir el código repetitivo;
-
simplificar el desarrollo de nuevos módulos;
-
aumentar la seguridad del backend;
-
desacoplar clientes y servidor;
-
facilitar el mantenimiento;
-
permitir el crecimiento horizontal de la plataforma.
La arquitectura se basa en varios principios fundamentales.
-
Fail Closed : cualquier duda implica rechazar la petición.
-
Security by Default : toda operación es privada hasta que el sistema la publica.
-
Single Entry Point : un único Gateway para todas las operaciones.
1
• Convention over Configuration : el sistema descubre automáticamente las operaciones. • Compatibilidad total con Laravel : reutiliza FormRequest , Eloquent, Policies, Middleware y el Service Container.
Toda la aplicación expone un único endpoint RPC.
POST /api
Cada petición indica únicamente:
{
"operation":"documents.create",
"params":{}
}
El cliente nunca conoce Controllers ni métodos internos.
Todas las operaciones públicas se descubren automáticamente.
El Registry actúa como:
- catálogo de operaciones; • allowlist automática; • sistema de resolución del Gateway.
No existen listas manuales de operaciones.
Cada operación posee un identificador único.
Ejemplos:
documents.create
documents.delete
2
users.login
vehicles.find
Los clientes nunca dependen de nombres de clases o namespaces.
El motor RPC:
-
resuelve Controllers;
-
construye automáticamente los
FormRequest; -
ejecuta la validación;
-
invoca el método correcto; • normaliza la respuesta.
Todo ello utilizando el Service Container de Laravel.
Toda la validación continúa realizándose mediante:
-
FormRequest -
•
authorize()•rules()
No existe un sistema alternativo.
La arquitectura incorpora aislamiento completo entre clientes.
Cada usuario pertenece a una licencia (UUID) y todos los registros incluyen dicha licencia.
El filtrado se realiza automáticamente mediante Global Scopes de Eloquent.
El desarrollador nunca necesita escribir:
where('licencia', ...)
Todas las entidades utilizan UUID estándar (36 caracteres) como clave primaria.
3
Esto proporciona:
-
identificadores globales;
-
mejor soporte para sistemas distribuidos;
-
imposibilidad de enumerar registros.
Cada petición atraviesa varias capas independientes.
-
HTTPS
-
Validación del envelope
-
Autenticación
-
Autorización
-
Registry
-
Rate Limiting
-
Replay Protection
-
FormRequest
-
Tenant Isolation
Cada capa protege a la siguiente.
Las comunicaciones internas utilizan:
-
HMAC SHA-256
-
Secretos independientes
-
Timestamp
-
Nonce
-
Protección Replay
-
Canonical Request
No se comparten secretos entre servicios.
Cada servicio posee:
-
una credencial propia;
-
un secreto independiente;
-
permisos específicos;
-
límites individuales;
-
rotación automática;
-
expiración;
-
revocación.
4
Todo el ciclo de vida está automatizado.
El Gateway implementa varios mecanismos de protección.
-
límite por minuto;
-
límite por hora;
-
límite por día;
-
límite absoluto;
-
Cost Units; • protección Replay.
Cada credencial posee su propia configuración.
La arquitectura utiliza:
-
transacciones cortas;
-
operaciones atómicas;
-
bloqueo optimista;
-
versionado del Registry; • separación entre datos estáticos y dinámicos.
No requiere infraestructura distribuida compleja.
Todas las tareas de mantenimiento utilizan Laravel Scheduler.
Entre ellas:
-
regeneración del Registry;
-
rotación de credenciales;
-
expiración;
-
reconciliación;
-
limpieza;
-
mantenimiento de estadísticas.
La arquitectura contempla clientes oficiales para:
- Laravel
5
-
PHP
-
Next.js
-
JavaScript
-
Node.js
Todos implementan exactamente el mismo protocolo RPC.
La plataforma incorpora una estrategia de pruebas basada en:
-
Unit Tests;
-
Feature Tests;
-
Integration Tests;
-
Security Tests;
-
Concurrency Tests;
-
Performance Tests.
-
Un único endpoint para toda la plataforma.
-
Descubrimiento automático de operaciones.
-
Seguridad homogénea.
-
Menor superficie de ataque.
-
Menos código repetitivo.
-
Compatibilidad completa con Laravel.
-
Arquitectura desacoplada.
-
Escalabilidad horizontal.
-
Multi-tenancy transparente.
-
Preparado para aplicaciones empresariales.
LSDG resulta especialmente adecuado para:
-
ERP.
-
CRM.
-
Plataformas SaaS.
-
Sistemas multi-tenant.
-
Microservicios Laravel.
-
APIs internas.
-
Plataformas B2B.
-
Backends para aplicaciones móviles.
-
Backends para Next.js.
6
-
PHP 8.3+
-
Laravel 12+
-
Eloquent ORM
-
FormRequest
-
Service Container
-
Scheduler
-
Artisan
-
MySQL o PostgreSQL
-
Redis (opcional)
Este repositorio documenta la arquitectura completa de Laravel Secure Domain Gateway, incluyendo su modelo de seguridad, motor RPC, sistema de credenciales, automatización, estrategia de pruebas y recomendaciones de despliegue.
El objetivo es proporcionar una base sólida para construir aplicaciones Laravel de gran tamaño con un modelo uniforme, seguro y mantenible.
7