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 de lectura • Equip Q2BSTUDIO

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.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat