¿Cuál solía ser la arquitectura para aplicaciones que ahora usan Kafka (sistemas similares)?

Un ejemplo de dicha aplicación que escribí hace unos años en mi joven carrera:

un sistema de aprovisionamiento del servidor : el sistema recibe comandos del servidor que varían en tamaño y capacidad, pero también en la plataforma que se debe aprovisionar (nuestros servidores en África, una plataforma iaas de proveedor en Europa y otra en América) e incluso la aplicación que se entregará con . El cliente necesita saber cuando su servidor está listo; que puede ser en cualquier momento entre 15 segundos y 3 días (soporte de plataforma deficiente).

Las limitaciones: los hombres de negocios querían que la aplicación web que se basaba en un sistema de administrador de alojamiento web almacenara toda la información, no se debería usar ninguna otra aplicación para que sepan quién fue entregado, quién fue notificado por las partes internas del sistema y un montón de molestos bits Agregó el hecho de que era más temprano en mi carrera (aún temprano).

La arquitectura: bueno, todavía no me atrevo a llamarlo así, pero eran la aplicación web para manejar comandos, y un sistema cron, una base de datos para gobernarlos a todos.

El proceso: una vez que el cliente paga, las aplicaciones web almacenan en una tabla específica un nuevo pedido con los parámetros específicos para el cron de aprovisionamiento. El cron se despierta cada 5 minutos, verifica si no hay otra instancia que funcione o que haya fallado, luego toma y procesa los 5 trabajos más antiguos (orden de aprovisionamiento). Una vez que uno termina, actualiza algunas tablas, a veces actualiza algunos registros, devuelve la llamada a un punto final en la aplicación web para indicarle que envíe un correo y luego pase a la siguiente.

El problema: difícil de escalar, difícil de evolucionar cuando hay muchos productos diferentes con diferentes necesidades pero funcionalidades similares que realmente no pueden separarse sin duplicación. Y en algún momento, el cron, el servidor o la base de datos fallan en el peor momento y el cron está atascado en el trabajo mientras no hace nada.

Oh, pueden haber sido otras formas de corregirlo, pero Kafka me ayudó mucho a manejar la cola de trabajos y notificar que partes del sistema ahora se separan de una manera elegante.