01 / QUÉ ES
La capa de observación detrás de la flota. Mail, mensajes, calendario, clima, teléfono y un wearable llegan todos a un mismo log de eventos append-only, y todo lo demás lee desde ahí.
La mayoría de los asistentes se construyen al revés: cada integración es dueña de su propia copia del mundo, así que cada agente nuevo significa otra sincronización, otra credencial, otra cosa que se puede romper. Argos lo invierte. Hay un solo log, y enchufar un agente nuevo a una vida es cuestión de apuntarlo a un cursor.
Diecisiete servicios chicos, alrededor de veintiséis mil líneas de TypeScript. Ninguno es interesante por sí solo. Lo interesante es el contrato entre ellos.
02 / CÓMO FUNCIONA
Un solo escritor. Cada fuente pasa por un único escritor que valida la forma de un evento según su kind antes de que entre al log. Un solo escritor significa que el log nunca puede contradecirse a sí mismo, y un contrato en el borde significa que un evento malo se rechaza donde es barato rechazarlo.
Append-only. Nada se actualiza y nada se borra. Lo que pasó queda exactamente como se registró, lo que convierte al log en una historia y no en una foto. El estado derivado no se guarda en ningún lugar sagrado: se calcula a partir del log, así que se puede tirar y reconstruir cada vez que cambia la forma en que se interpretan los eventos.
Un cursor por consumidor. Cada lector mantiene su propia posición. Ese es todo el diseño en una frase, y compra tres cosas: un consumidor que estuvo roto tres días se pone al día solo, un consumidor nuevo puede leer historia anterior a su existencia, y ningún lector puede frenar a otro. Enchufar un agente nuevo no es un proyecto de integración, es un cursor.
Capas, no un pipeline. Los observadores escriben eventos crudos. Las capas derivadas los leen y escriben sus propias conclusiones de vuelta al mismo log, como eventos. Así el razonamiento también es auditable: no solo qué llegó, sino qué hizo el sistema con eso y cuándo.
Polling en vez de push, a propósito. Push era más rápido y dependía de infraestructura que estaba por desaparecer. Polling costó unos diez minutos de latencia y compró independencia total. Cuando esa infraestructura finalmente se destruyó, el log ni lo notó.
03 / DECISIONES
Un solo escritor, muchos lectores. La propiedad más valiosa del sistema, y la más barata de perder por accidente. Dos escritores son dos verdades.
Un log, no una cola. Una cola olvida lo que entregó. Un log permite hacer mañana una pregunta sobre datos que llegaron hoy, con código que todavía no existía cuando llegaron.
Validar en el borde, por kind. Barato donde entra el evento, imposible una vez que ya pasó por cuatro consumidores.
Los ojos son propios. La capa que ve una vida no debería vivir en infraestructura que no se controla. Argos fue migrado de una plataforma moribunda, servicio por servicio, verificando la cantidad de eventos y el checksum en ambos extremos, y siguió corriendo todo el tiempo.
04 / ESTADO
Corriendo en la máquina del rincón del cuarto, alimentando la flota.