Dónde encaja Plerino
Plerino es un framework de backend de propósito general. Cada caso de uso indica lo que el framework aporta y los paquetes implicados, todos ellos presentes hoy en el repositorio.
Explorar el ecosistemaPonte en contacto
Plerino es anterior a la versión 1.0. Estas páginas describen lo que está implementado, no referencias de producción.
Backends de API
Servicios que exponen JSON por HTTP y necesitan un enrutamiento predecible, un tratamiento estricto de la entrada y contratos de error claros.
- Las rutas se compilan en un matcher estático, y las rutas que se solapan hacen fallar el build.
- Las clases de entrada tipadas y las reglas por atributos validan las peticiones; los fallos se devuelven como RFC 9457 Problem Details.
- Guards de sesión y de token bearer, con tokens de API hasheados que llevan ámbitos y pueden revocarse.
- Las llamadas salientes pasan por un cliente PSR-18 con protección SSRF y reintentos.
Paquetes implicados
SaaS y plataformas multiservicio
Productos formados por varios servicios que comparten el inicio de sesión, la localización, los importes monetarios y la comunicación con los clientes.
- Inicio de sesión con passkeys, TOTP y proveedores OAuth, y políticas de denegación por defecto para RBAC, ABAC y ReBAC.
- Importes exactos con divisas ISO 4217 e ICU MessageFormat para los textos localizados.
- El correo y las notificaciones se delegan en las colas, con preferencias de canal por destinatario.
- La configuración tipada se compila en el build y los secretos quedan fuera del archivo compilado.
Paquetes implicados
Aplicaciones en tiempo real
Paneles en vivo, funciones de colaboración y avisos de estado que deben sobrevivir a las reconexiones.
- Los canales se declaran con patrones tipados y se protegen con políticas comprobadas en el build.
- Las listas de presencia y una ventana de reproducción permiten que un cliente que se reconecta continúe donde lo dejó.
- WebSocket con alternativa de server-sent events y un cliente TypeScript tipado.
- Los backbones de Redis Streams, Valkey y NATS JetStream distribuyen los eventos entre procesos.
Paquetes implicados
Trabajos en segundo plano y flujos de trabajo
El trabajo que no debería ejecutarse dentro de una petición: envíos, importaciones, informes y procesos de negocio de larga duración.
- Drivers de cola para Redis Streams, PostgreSQL y SQS, con entrega al menos una vez.
- Reintentos con backoff, trabajos únicos, claves de idempotencia y un almacén dead-letter.
- Flujos de trabajo duraderos con registro de eventos, compensación, temporizadores y aprobación humana.
- Las planificaciones se compilan en el build, con zonas horarias y bloqueos entre nodos.
Paquetes implicados
Herramientas internas y back offices
Aplicaciones de administración en las que los formularios, los permisos y la pista de auditoría importan más que un front-end pesado.
- Plantillas Weft renderizadas en el servidor, con componentes, slots y escapado por defecto.
- Reglas de validación por atributos con mensajes traducidos.
- Políticas con aprobación de dos personas y una pista de auditoría de cada decisión.
- Subidas de archivos con inspección y análisis antivirus, y documentos PDF generados a partir de plantillas.
Paquetes implicados
Integraciones orientadas a eventos
Sistemas que reaccionan a los cambios e intercambian datos con otros servicios de forma fiable.
- Eventos tipados, con listeners compilados en el build y entrega asíncrona.
- Un outbox transaccional: el evento se registra en la misma transacción que el cambio que lo originó.
- Los change streams de MongoDB, entregados como eventos.
- HTTP saliente con control de redirecciones, reintentos y protección SSRF.
Paquetes implicados
Entornos regulados o sensibles a la seguridad
Equipos que deben demostrar, y no solo afirmar, cómo se comportan la autenticación, la criptografía y el registro de eventos.
- El paquete de autenticación relaciona los requisitos de OWASP ASVS 4.0.3 nivel 3 con las pruebas que los verifican. Es una autoevaluación, no una certificación.
- libsodium es el único proveedor de criptografía, con llaveros y rotación de claves.
- Cifrado de campos con índices ciegos y pista de auditoría en la capa de datos.
- Los secretos se ocultan en los registros y en la telemetría, y quedan fuera de la configuración compilada.
Paquetes implicados
Sigue el camino hacia la 1.0
Explora lo que existe hoy o escríbenos si quieres hablar sobre el proyecto.