Construyendo Software: Lecciones del Backend

Backend que detecta blasfemias en GitHub con Postgres como control y ClickHouse como almacén de hechos, utilizando normalización de texto, detección de idioma, consentimiento y observabilidad. Guía de arquitectura y servicios de Q2BSTUDIO.

18 sept 2025 • 5 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Pequeña advertencia: este artículo trata sobre el uso de palabrotas en el código y sobre el desarrollo de un backend que las detecta en contextos humorísticos. En los últimos meses construimos SW, un servicio backend que ingiere eventos de GitHub, extrae texto escrito por humanos y detecta blasfemias irónicas. La intención fue siempre analítica ligera y no moderación, con mecanismos de consentimiento integrados desde el diseño.

Al principio elegimos Postgres por familiaridad, seguridad y garantías ACID. Funcionó bien durante un tiempo, pero al escalar surgieron fricciones: vistas materializadas frágiles y costosas de refrescar, inserciones de alto volumen que provocaban deadlocks, ajustes de VACUUM y problemas habituales de índices y WAL. La solución fue dividir responsabilidades: Postgres como plano de control para contabilidad de ingestión, metadatos y recibos de consentimiento, y ClickHouse como almacén de hechos para hits y utterances con tablas optimizadas para recortes y rollups económicos. Esa separación nos liberó de pelear con un único motor de almacenamiento.

El procesamiento de texto fue otra batalla. Las blasfemias no se escriben de forma uniforme: leetspeak, homoglifos, espacios de ancho cero y normalizaciones complejas. Si se normaliza en exceso aparecen falsos positivos ridículos. Diseñamos una canalizacion de normalizacion que repara UTF8, aplica forma NFKC, case folding, elimina caracteres invisibles, mapea variantes leet y colapsa espacios. Con eso la deteccion se volvió mucho más robusta.

El concepto de drift en la deteccion nos obligo a versionar reglas. Pasamos de un rules.json plano a un formato rulepacker con plantillas, lemas, categorias y versionado. Cada hit lleva detector_version para que las re-ejecuciones comparen resultados antiguos y nuevos sin reescribir la historia. Esto permitio evolucionar la logica de deteccion sin reprocesar 14 anios de commits cada vez.

La deteccion de idioma es dificil y GitHub no provee siempre metadatos de lenguaje en mensajes de commit o issues. Probamos varias aproximaciones: un detector de script que cuenta rangos Unicode, integraciones con librerias en Postgres y finalmente funciones experimentales de ClickHouse para detectar lenguaje mixto. La realidad es que en muchos casos conviene caer en un fallback como lang_code un cuando no hay certeza.

La privacidad y el consentimiento fueron requisitos innegociables. Empezamos almacenando nombres de repos y usuarios, pero lo eliminamos para evitar doxxing. Convertimos identificadores a HIDs pseudonimizados, forzamos que cualquier informacion de identidad viva en Postgres con reglas estrictas para prevenir fugas accidentales. El flujo de consentimiento fue simple y verificable sin OAuth: opt-out mediante un archivo cero bytes en la raiz del repo, opt-in mediante un gist publico con un hash de desafio, recibos durables en Postgres y revocacion eliminando el archivo o gist. Las opt-outs prevalecen y las opt-ins permiten desenmascaramientos limitados. Esto hizo el proceso auditable y eticamente defendible.

Procesar quince anios de GH Archive implica reintentos y replays. Sin diseño determinista se generan duplicados o drift. Adoptamos IDs deterministas con UUIDv7 derivados de SHA256 y un sistema de leasing en Postgres para que un solo worker reclame una hora, la procese y marque el trabajo como completado. El resultado fue idempotencia y seguridad en replays.

En arquitectura del servicio aplicamos un enfoque ports-first. Definimos puertos y contratos para evitar dependencias ciclicas y facilitar pruebas. No renunciamos a decisiones practicas en el codigo por dogma: estructura clara de servicios, repositorios y modulos, y un paquete de wiring para alinear dependencias internas. Esto mantuvo las superficies modulares y mejoro la mantenibilidad.

Observabilidad fue imprescindible desde el primer dia. Logs estructurados con tiempos por operacion, telemetria de leases de ingest, metricas de Nightshift durante rollups y consultas que comparan tamaños comprimidos y no comprimidos en ClickHouse. Gracias a eso las operaciones dejaron de ser vigilacia constante y pasaron a ser respuestas basadas en datos cuando algo destaca.

La gestion de retencion de datos resolvio el problema del crecimiento exponencial. En lugar de conservar cada mensaje de commit y comentario para siempre, Nightshift consolida en resúmenes horarios y diarios con totales, categorias, top terms y desglose por idioma, y luego elimina las utterances y hits crudos. El ahorro de almacenamiento es enorme y mantiene el proyecto viable incluso para exploracion en un portatil domestico.

Lecciones clave: la division Postgres control-plane y ClickHouse fact-store fue la victoria. Normalizacion y rulepacker evitan reprocesos masivos. La deteccion de idioma es compleja y conviene fallback a un codigo neutro. Los flujos de consentimiento basados en primitivas de GitHub mantienen la etica del proyecto. Determinismo y leasing hacen los backfills repetibles. Un diseño ports-first evita deps ciclicas y la observabilidad integrada hace que la operacion sea aburrida, que en este contexto es buena señal.

En Q2BSTUDIO aplicamos estas mismas filosofias en proyectos reales de desarrollo de software a medida y aplicaciones a medida. Como empresa especializada en software a medida, inteligencia artificial y ciberseguridad diseñamos soluciones escalables que combinan buenas practicas de arquitectura con cumplimiento y privacidad. Si su empresa busca desarrollar una aplicacion robusta, podemos ayudarle con procesos de diseño, implementacion y despliegue en la nube, incluyendo servicios cloud aws y azure.

Ofrecemos desde modernizacion de backends y pipelines de datos hasta proyectos de servicios inteligencia de negocio y Power BI para explotacion analitica. Tambien trabajamos con agentes IA y soluciones de ia para empresas, creando integraciones seguras y eticas que respetan consentimiento y privacidad. Para conocer nuestras capacidades en desarrollo de aplicaciones puede visitar nuestro servicio de aplicaciones y software multiplataforma y para explorar servicios de inteligencia artificial visite nuestra pagina de inteligencia artificial.

Adicionalmente ofrecemos servicios de ciberseguridad y pentesting para proteger APIs, pipelines y datos sensibles, y contamos con experiencia en integraciones cloud seguras, despliegues automatizados y estrategias de retencion y privacidad que escalan con su negocio. Si le interesa una consultoria sobre arquitecturas híbridas Postgres y ClickHouse, deteccion de texto, o construir pipelines idempotentes y observables, en Q2BSTUDIO estamos listos para ayudar.

Palabras clave incorporadas de forma natural para mejorar posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si desea conversar sobre un proyecto concreto o evaluar una prueba de concepto, nuestro equipo le orientara en los siguientes pasos y en como traducir ideas a software fiable y escalable.

Y si finalmente compartimos el repositorio de SW, espero que la parte del frontend sea menos dolorosa que el backend. Maldita sea, ahora tocar escribir interfaces tambien.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat