Saltar al contenido
La Forja Ingeniería sin filtros

Nivel 5 · 11 de 14

La señal que hay que poder revisar en marzo

Marketplace

La señal que hay que poder revisar en marzo

El mismo marketplace, el mismo servicio de checkout. Pero la pregunta de este ejercicio no es cuándo se entera la guardia: es qué se puede reconstruir seis meses después.

El checkout genera 40 millones de eventos por día. La auditoría anual, que cae en marzo, pide poder reconstruir cualquier compra de los últimos 13 meses: qué se cobró, con qué precio, con qué descuento aplicado y en qué orden pasaron las cosas. El año pasado el equipo tardó tres semanas en responder nueve preguntas, reconstruyendo a mano desde la base de pedidos, que guarda el estado final y no la historia.

Hay un archivo de eventos creado hace seis meses. Está vacío. Lo creó alguien que ya no está en el equipo y nadie escribió nunca en él.

La primera versión de la solución fue la obvia: que el checkout escriba cada evento en el archivo. Duró un día. El almacenamiento tuvo un pico de escritura y la latencia de compra saltó a 1,9 segundos, porque el archivo quedó colgado del camino del comprador. Una escritura lenta del archivo es un checkout lento; un archivo caído es una compra que falla por una razón que no tiene nada que ver con la compra.

Acá el equipo acepta el precio contrario al del ejercicio anterior, y también con los ojos abiertos: entre el hecho y el archivo va a haber un intermediario, así que el dato llega con retraso y con la posibilidad de acumularse. Vale la pena, porque el valor de esta señal no vence en 60 segundos: vence en 13 meses, y lo único que no se perdona es que falte.

Ese intermediario, eso sí, es una pieza más que se puede llenar en silencio. Si nadie mira cuánto se acumula, la retención se vence y los eventos se descartan sin un solo error en ningún registro. El agujero aparece en marzo, delante del auditor.

Armá el sistema para que los eventos lleguen al archivo pasando por un buffer que absorba el volumen, y para que la acumulación en ese buffer sea una señal que alguien mira.

Uso de IA: libre, pero la respuesta tiene que explicar por qué acá la señal pasa por un buffer antes de llegar al archivo, y por qué eso sería un error en el ejercicio anterior.

Presupuesto
7 unidades operativas
Restricción
eventos de checkout generados por día: al menos 40000000 eventos/día
Restricción
retención exigida por la auditoría anual: al menos 13 meses

Este ejercicio se resuelve arrastrando piezas en un lienzo, y eso pide una pantalla ancha y un puntero preciso. Acá podés leerlo entero. Abrilo desde una computadora para jugarlo.

Recién salido del horno

La Forja acaba de salir

Es lo más nuevo del sitio, así que es donde es más probable que algo se rompa. Si algo no anda como esperabas, o simplemente no se entiende, contámelo: cada reporte la mejora.

¿No usás GitHub? Podés escribirme por mail. ¿Nada que decir todavía? Ver lo ya reportado.