Minuta técnica

Qué es Ferguson

Qué resuelve, qué garantiza y qué requiere

Ferguson

Qué es

El nombre viene de una pieza mecánica. Una mesa indexadora Ferguson convierte un giro continuo en pasos exactos, y el juego entre la leva y sus rodillos no se tolera: se elimina apretándolos entre sí. Este sistema hace lo mismo con los archivos, y no deja juego por donde se cuele una suposición.

Un ejemplo

Un archivo trae un contador de bytes vacío. Rellenarlo con cero sería el juego mecánico: nadie lo nota, el total cuadra, y la cifra que recibe el cliente está equivocada sin avisar. Aquí el vacío viaja como desconocido hasta la salida, y la cifra final dice cuánto de ella es dato y cuánto es hueco.

Para qué sirve

El nombre fija el orden de las reglas: correcto antes que rápido y que barato, un renglón que no cuadra con el formato declarado se aparta con su motivo, y cada registro se atribuye a quien era su dueño cuando ocurrió. Cuando dos de esas reglas estorban entre sí, el nombre dice cuál gana.

La versión completa

Por qué Ferguson: la pieza, la correspondencia y las reglas que fija

Ferguson recibe los archivos de uso de red que entrega el proveedor de conectividad, los normaliza, los verifica y los entrega al cliente final por archivo y por API. Opera entre un formato de origen que puede cambiar sin aviso y un consumidor que requiere cifras auditables. Es multi-cliente desde el primer día.

Ver el estado y el avance en vivo

Qué resuelve

El proveedor entrega archivos crudos cada quince minutos, con un esquema declarado que puede cambiar y sin acuerdo de nivel de servicio. Un consumidor regulado requiere el consumo por línea reconciliado contra el origen, con procedencia y sin registros perdidos.

Los datos de uso son requisito de entrada al segmento financiero: una institución regulada los necesita para control de fraude y para conciliar cargos contra su propio sistema.

Cómo funciona

Cinco capas y una verificación transversal.

  • Ingesta y detección de ausencia. Un lector por perfil de entrega, huella criptográfica por archivo y descarte del duplicado. Un latido contra la cadencia esperada detecta el archivo que no llegó.
  • Almacenamiento crudo. Inmutable y sólo-agregar. Es la evidencia ante una disputa y permite reprocesar desde el origen.
  • Frontera de portabilidad. Copia uno a uno del archivo en formato columnar abierto, con su linaje. Una columna desconocida entra a un campo de extras y genera una migración propuesta; la ingesta continúa.
  • Normalización. Decodificación, normalización de números y marcas de tiempo, deduplicación idempotente, y atribución de cliente contra un catálogo con historia. Lo que no se puede interpretar con certeza pasa a cuarentena.
  • Agregados y entrega. Consumo por línea y por día, sesiones reconstruidas y libro de reconciliación. Dos salidas: archivos al almacén del cliente con manifiesto y verificación de integridad, y una API de consulta.

Cada lote emite su conteo en cada salto. Un descuadre entre dos saltos marca el lote y dispara su reproceso, sin comparación manual.

Lo que garantiza

Cinco compromisos medibles.

MétricaCompromiso
Disponibilidad99.5% mensual
Latencia propiap95 menor a 10 minutos desde que aterriza el archivo
Completitud100% procesado o apartado explícitamente
Intervención humanaMenos de una por semana en estado estable
Frescura del origenSe expone como dato; no se garantiza, depende del proveedor

Operación sin vigilancia diaria

Seis escenarios de falla son criterios de cierre y se ensayan como simulacros: cambio de esquema en el origen, evento anterior a la sincronización de su catálogo, descuadre de conteos entre capas, archivo no entregado, caída del nodo primario de base de datos, y destino de exportación inalcanzable. El sistema debe superar los seis sin intervención.

Ese trabajo representa entre 3 y 4 semanas distribuidas a lo largo del plan. Sin él, el sistema requiere atención diaria durante toda su operación.

Volumen que tiene que soportar

Dos escenarios separados por un factor de diez. Cerrar esa diferencia es objeto de la fase 0, y es la razón de que el dimensionamiento no se fije antes.

Escenario probableEscenario conservador
Líneas al mes 1210,00010,000
Renglones por día493,0004.93 millones
Renglones al año180 millones1,800 millones
Almacenamiento crudo145 MB por día · 52 GB al año1.45 GB por día · 520 GB al año

El motor de base de datos se decide con la medición: se arranca sobre una base relacional particionada y existe un umbral declarado a partir del cual se migra a un motor columnar. La frontera de portabilidad de la capa cruda acota el alcance de esa migración.

Decisiones de diseño

El archivo de muestra se analizó antes de definir la arquitectura: siete hallazgos cuantificados y reproducibles. No se detallan aquí porque describen la calidad del insumo de un tercero; sí se detalla lo que determinaron.

  • Cuarentena en lugar de inferencia. Una cifra que no se puede determinar con certeza no se estima: se aparta con su motivo registrado. Un contador nulo se trata como desconocido y no como cero, porque tratarlo como cero subestima el consumo sin dejar rastro.
  • Atribución de cliente contra un catálogo con historia. Una de las familias de registro no trae identificador de cliente. La atribución responde de quién era el número en el instante del evento, no de quién es hoy. Sin eso, una línea que cambia de titular expone datos de un cliente a otro.
  • Decisión de motor diferida a la medición. No se provisiona capacidad para el escenario conservador antes de saber si aplica, ni se adopta un motor especializado que complica la operación desde el arranque.

Requerimientos de infraestructura

La plataforma corre en nube, no se compra ninguna computadora, y la nube se contrata sólo para producción. Cuatro administradas, las cuatro rentadas. Dos cubos de objetos, un balanceador y el disco de la máquina de ingesta se rentan sin administrar y no cuentan como computadora.

DóndeQuéComputadorasRequerimiento
NubeIngesta, orquestación y escritura de las capas crudas18 vCPU, 32 GB y 1 TB en el escenario de volumen bajo; el doble en el alto. El disco va en un volumen aparte: la máquina incluye una fracción
NubeBase de datos de las capas de trabajo, los agregados y el plano de control1Servicio gestionado de 4 GiB con nodo en espera incluido y ~150 GB. Es una sola base, y son dos cajas
NubeSuperficie de consulta, servidor de herramientas y panel22 vCPU y 8 GB cada uno. El exportador va encima como contenedor con límite duro, no como máquina aparte
NubeDos cubos de objetos, un balanceador y el disco de la ingestasin administrarLas capas crudas en un cubo y la entrega en el otro. El respaldo va en un tercer cubo, en otra cuenta que ninguna llave del sistema vivo alcanza. Terminación TLS en el balanceador
Banco de máquinasDesarrollo, integración continua, staging y preproducciónfuera de la nubeMáquinas físicas que ya existen y ya corren el ciclo completo. No llevan renglón de renta
Total administrado4Cero compradas. Cinco cajas encendidas, por el nodo en espera. En el escenario de volumen alto son seis administradas: la ingesta al doble y dos réplicas del motor de base especializado

Cuatro cosas que operar, cinco computadoras encendidas. Las dos cifras son ciertas y se publican las dos: la base de datos gestionada trae un nodo en espera que es una máquina real y no se administra aparte. Quien suma la columna llega a cinco y tiene razón.

El ambiente de construcción salió de la nube el 2026-09-22. Desarrollo, integración continua y preproducción corren en el banco de máquinas físicas, que ya venía ejecutando el ciclo completo de un archivo desde el 11 de septiembre, y en la máquina de quien desarrolla. No se compró nada para eso y no se renta nada para eso: lo que se paga en la nube es producción y nada más.

Eso cuesta fidelidad y se dice completo. Hasta ese día producción y preproducción compartían forma —el mismo almacén, el mismo motor de base gestionada, la misma red—, y ésa era la ganancia que la decisión anterior presentaba como la más importante. Ahora vuelven a diferir en los tres. Los seis simulacros de falla de la última fase se ensayan sobre algo que no es idéntico a lo que van a tirar, y el hito que los exige se lee con esa advertencia hasta que esa máquina vuelva a la nube.

Lo que no se perdió: los simulacros que apagan la máquina anfitriona sí se pueden ensayar. El banco no tiene servicios de terceros encima que tirar, que era la objeción que había cerrado esa puerta antes.

Dos verificaciones contra el catálogo del proveedor corrigieron la tabla. La forma que se publicaba para el taller no existe —las máquinas virtuales vienen en tamaños discretos y ése caía entre dos—, y el disco declarado para la ingesta no viene incluido en su máquina: es un volumen aparte, y ahora tiene renglón. Las dos llevaban meses como interpolaciones que nadie había ido a comprobar.

La segunda base de datos sigue fuera de la lista. Se decidió una sola. Si la ingesta y la consulta compiten por recursos, lo que entra es una réplica de lectura del mismo servicio gestionado, con la condición que la dispara declarada por escrito.

Ya no hay ninguna respuesta pendiente que pueda invalidar esta forma. La residencia de los datos —si tenían que quedarse en territorio nacional— se contestó el 2026-09-22 y no impone ninguna región. Era la única pregunta abierta capaz de rehacer la lista entera, y vuelve a abrirse sólo si el destinatario de los datos plantea después un requisito de residencia, soberanía o certificación.

El comparativo de costo sigue pendiente en una parte, y en otra se quedó sin objeto. La que medía rentar el taller contra comprarlo ya no aplica, porque no se hace ninguna de las dos cosas. Lo que falta es comparar la compra del disco del archivo una vez contra su renta mensual más el tráfico de salida.

Y el tráfico de salida es el costo recurrente completo. Cada entrega y cada byte que abandona la nube se cobra por volumen, y no queda ninguna mitad propia donde eso fuera gratis.

Ninguna cifra de la tabla está medida. Todas se dimensionan sobre el volumen derivado de un archivo de muestra con doce registros únicos. Lo que las convierte en medición es la petición de veinticuatro horas continuas de una línea, que es parte del acuerdo de interfaz.

La orden de nube, recurso por recurso

La tabla de arriba describe capacidad; ésta describe lo que hay que crear y en qué orden. «8 procesadores y 32 GB» no dice qué recurso pedir ni qué hay que encender encima, y lo que se configura mal en la primera hora es lo que nadie vuelve a mirar.

  • El orden importa. La red privada antes que las máquinas, y las máquinas antes que lo que las expone. Una máquina creada fuera de la red privada ya nació alcanzable, y moverla después es rehacerla.
  • El nodo en espera de la base es una casilla al crearla, no un segundo servicio. Es lo que convierte una actualización del motor —o una falla del proveedor— de caída con recuperación manual en un parpadeo.
  • Los dos cubos llevan llaves de acceso distintas. Quien entrega al cliente no tiene por qué poder leer el archivo original, que es el comprobante de cada cifra que se publica.
OrdenQué se creaQué se enciende encima
1Agrupación de proyecto en la cuentaSegundo factor obligatorio, usuarios nombrados y alertas de gasto. Una cuenta compartida no tiene a quién auditar
2Red privada propiaTodo adentro. Ninguna máquina se habla con otra por internet
3Cubo de objetos — capas crudasVersionado y política de retención: es el comprobante de cada cifra
4Cubo de objetos — respaldo y entregaLlave de acceso distinta a la del cubo anterior
5Base de datos gestionadaNodo en espera, orígenes de confianza limitados a la red privada, reservas de conexión separadas para ingesta y consulta, y ventana de mantenimiento de madrugada
6Máquina de ingestaRespaldos automáticos. Salida permitida hacia el proveedor de datos; entrada cerrada
7Dos máquinas de consultaRespaldos automáticos. Sólo aceptan tráfico del balanceador
8Volumen de disco para la máquina de ingestaCompleta el disco que su forma no incluye
9Balanceador con terminación TLSCertificado emitido y renovado por el proveedor
10Dirección reservada para el balanceadorPara que la dirección pública no cambie al reemplazar una pieza

Nada de esta lista es alcanzable desde internet salvo el balanceador. La base no acepta conexión fuera de la red privada de la organización; las dos superficies de consulta sólo aceptan al balanceador; la máquina de ingesta sale a buscar los archivos y no recibe nada.

Toda máquina se une a la red privada de la organización con el candado de inscripción activado. Sin ese candado, el servicio de coordinación puede en principio dar de alta una máquina por su cuenta, y ésa es una pregunta que una auditoría financiera hace.

El taller ya no es un renglón de esta orden. Tenía dos ramas —prendido siempre o levantado sólo cuando alguien construye— y la pregunta se disolvió al sacarlo de la nube el 2026-09-22. La respuesta que alcanzó a darse, prendido siempre, queda guardada para el día que vuelva: es una máquina aplazada y no una máquina cancelada.

Lo que no se contrata con el proveedor de infraestructura, y estuvo a punto de contratarse dos veces: el registro de imágenes, que ya viene con la suscripción de repositorio. El agregador de errores, el cortafuegos de aplicación, el monitoreo externo y el gestor de secretos esperan al primer despliegue, porque sólo tienen sentido sobre algo desplegado.

Hoy el desarrollo corre sobre un equipo existente, como infraestructura provisional mientras se contrata ésta. Preproducción no cabe ahí: pide 32 GB de memoria y 1 TB de disco rápido que ese equipo no tiene, y además ya sostiene servicios en producción de otra cosa.

Lo que se decide del lado de la organización

Cinco decisiones fuera del alcance del equipo de desarrollo.

  • Apertura de la cuenta de infraestructura. Sin ella no hay plataforma, y desde el 2026-09-12 no hay ninguna otra pieza que la supla: ya no se compra equipo. Depende de la respuesta de residencia, así que es lo segundo, no lo primero.
  • Residencia de los datos. Es la única respuesta que puede obligar a rehacer el reparto, y ahora condiciona todo: si exige sitio propio, la lista se rehace entera y ya no queda una máquina comprada que sirva de puente; si exige territorio nacional, hay que verificar que el proveedor tenga una región ahí antes de comprometer el gasto.
  • Firma del contrato de interfaz con el proveedor de los datos, una vez redactado.
  • Contratación de la revisión de seguridad externa, que se ejecuta en la última fase y cuyos hallazgos se remedian antes del cierre.
  • Autorización del arranque de la fase 0, que es lo único que hoy mantiene el cronograma detenido.

Tiempos

24 semanas comprometidas, con 4 de contingencia declarada y techo de 28. La contingencia se consume únicamente por causas identificadas, y cada consumo se reporta. Las semanas se cuentan desde el cierre de la fase 0, que todavía no ocurre.

SemanaHitoCómo se verifica
4Contrato de interfaz cerradoDocumento firmado. Volumen medido sobre 24 horas continuas reales
7Ingesta autónomaSe coloca un archivo y queda registrado y almacenado en menos de 15 minutos. Se coloca dos veces y el segundo se descarta. Se dejan de colocar y el sistema lo detecta
10Primera demostración funcionalConsumo por número y rango, reconciliado renglón por renglón contra el archivo de origen
14Registros de sesión completosLas tres familias normalizadas. Cuarentena en cero para un lote válido. Decisión de motor documentada con su medición
17Entrega automáticaEntrega con manifiesto que el cliente valida, y reintento automático ante fallo del destino
19API en ambiente de pruebasEl cliente consume desde su propio código
24Producción auditableLos seis simulacros se superan sin intervención. Carpeta de evidencias completa

La fase 1 arranca en la semana 3, en paralelo con la fase 0, sobre los datos de muestra disponibles. Las siete fases corren en un solo frente secuencial. El cronograma no se comprime con más capacidad de desarrollo: la fase 0 depende de respuestas de un tercero, y cada semana de demora corre el proyecto una semana.