Loading SyntropySoft...

El mismo contrato de observabilidad en Node.js, Python y .NET

No son tres librerías parecidas. Es una especificación, implementada de forma idiomática en cada lenguaje — y demostrada por el mismo fixture de tests corriendo en todas.

Tu stack habla tres lenguajes. Tus logs hablan tres dialectos.

Un request cruza tu gateway en Node, tu worker en Python y tu servicio en .NET.

Tres loggers. Tres formas de enmascarar una tarjeta. Tres nombres para el mismo correlation id. Tres respuestas a “qué pasa cuando el destino de logs se cae”.

Correlacionar ese request es reconciliar tres verdades distintas — a mano, a las 3 de la mañana, con alguien esperando.

SyntropyLog

Masking declarativo de PII, contexto que sobrevive al async y un camino de logging que nunca tira — en los lenguajes que tu stack ya usa.

LenguajePaqueteVersiónNotas
Node.jssyntropylog · npm2.1.0Motor nativo en Rust
Pythonslpy-log · PyPI2.0.0CPython 3.7+ · motor Rust opcional
.NETsl4n · NuGet1.1.0net8.0 · Native AOT
JavaEn desarrollo

Cómo pensamos la observabilidad

Cuatro decisiones que ya están en el código. Son la razón de que las implementaciones coincidan — y de que, donde no, no coincidan a propósito.

  • El camino del logging nunca tira

    Si tu logger puede voltear tu handler, no es una herramienta de observabilidad: es un modo de falla nuevo. El fallo sale por hook y por contador. Nunca a quien llama.

  • Una estrategia de masking es dato, no código

    Agregar una estrategia no debería ser escribir la misma función en cuatro lenguajes. Es un spec que el motor interpreta — y por eso la salida puede ser idéntica en todos lados.

  • Los nombres de wire son de tus servicios, no nuestros

    Tu gateway le dice x-request-id y el sistema viejo le dice X-Correlation. Cada servicio declara su mapa y el id sobrevive la traducción. Los headers no tienen que ponerse de acuerdo.

  • La paridad se prueba con un test, no con un documento

    Los mismos diecisiete casos de masking — literalmente el mismo archivo, byte por byte — corren en las suites de Node, Python y Java. Si una implementación deriva, su build se pone en rojo.

Empezá en tu lenguaje

Instalalo y los defaults ya enmascaran contraseñas, tokens, emails y números de tarjeta.

Node.js

npm install syntropylog

Python

pip install slpy-log

.NET

dotnet add package sl4n

Todas las implementaciones son Apache 2.0 y no tienen dependencias de runtime obligatorias.

Hecho por desarrolladores, para desarrolladores

Nuestra pasión es resolver problemas reales. Construimos software de calidad con un compromiso fuerte con el open source y con la comunidad.

Compromiso open source

  • Licencia permisiva:Todo lo que publicamos está licenciado bajo Apache 2.0.
  • Contribuciones bienvenidas:Creemos en el poder de la colaboración.
  • Apoyanos en GitHub:Una estrella en nuestros repositorios nos ayuda a crecer.

Otras formas de apoyar

  • Dar Star en GitHub

    Ayuda a que más desarrolladores descubran SyntropyLog.

    Ir a GitHub
  • Reportar Issues

    Ayuda a mejorar el proyecto reportando bugs o sugerencias.

    Ver Issues
  • Compartir

    Comparte SyntropyLog con tu equipo y comunidad.

    Compartir en X

© 2024 SyntropyLog — Código abierto Apache 2.0. Desarrollado por SyntropySoft.

Hecho con ❤️ para la comunidad Node.js

LinkedIn