Fiable por diseño
El manejo de errores, la validación de entradas, la supervisión y la recuperación se diseñan con la funcionalidad, no se añaden después del primer incidente. Un sistema que falla debe fallar de forma visible y predecible.
Tecnología
Esta página trata de decisiones de ingeniería, no de una lista de frameworks. Las herramientas cambian por proyecto; estos principios no.
Principios de ingeniería
Cada una tiene un coste. Lo aceptamos porque la alternativa suele aparecer más tarde, en producción, en un peor momento.
El manejo de errores, la validación de entradas, la supervisión y la recuperación se diseñan con la funcionalidad, no se añaden después del primer incidente. Un sistema que falla debe fallar de forma visible y predecible.
Todo lo que otro sistema necesita alcanzar se expone mediante una interfaz explícita con un contrato definido, de modo que las integraciones no dependan de detalles internos de implementación.
Los secrets, la autenticación, la autorización y la validación pertenecen al servidor. El código del cliente se trata como público y los permisos se conceden con el alcance más estrecho que funcione.
Menos piezas móviles, patrones convencionales y código legible. La complejidad se añade solo cuando el problema lo exige, porque otra persona mantendrá esto más adelante.
Los sistemas que importan operativamente llevan registro, analítica y comprobaciones de estado, de modo que las preguntas sobre comportamiento y coste se puedan responder con datos y no con supuestos.
Arquitectura
Valores por defecto de los que partimos. Desviarse está bien cuando hay un motivo, y ese motivo se deja por escrito.
El sitio que está leyendo sigue las mismas reglas. Las páginas son HTML estático prerenderizado, servido desde la red edge de Cloudflare, de modo que una visita no implica renderizado en el servidor ni consulta a una base de datos. El único código que se ejecuta ante una petición es el conjunto reducido de funciones de API en /api : una comprobación de estado, el catálogo de servicios, el endpoint de contacto y los endpoints de pago reservados para uso futuro.
Puede comprobar el endpoint de estado usted mismo: /api/health.
Áreas de capacidad
Las áreas en las que trabajamos día a día. Si algo queda fuera de este alcance, lo decimos en lugar de aprenderlo a su costa.
Uso de modelos para tareas concretas, con validación, respaldos y visibilidad del coste.
Interfaces HTTP versionadas, webhooks y límites de servicio autenticados.
Trabajos programados y activados por eventos, con reintentos, registro y colas de excepciones.
Normalización, validación y conversión de datos estructurados y de texto.
Despliegue serverless y en el edge, separación de entornos, secrets gestionados.
Interfaces accesibles y adaptables, con validación en el servidor en todo el recorrido.
Conexiones entre sistemas de operaciones, con titularidad explícita de cada campo.
Informes operativos y medición construidos sobre los mismos datos que usa el sistema.
Si ya tiene software en marcha, una evaluación suele ser más útil que una reconstrucción. Podemos revisar la implementación actual y decirle qué conviene conservar.