Cuando uno de los cocreadores del popular marco de procesamiento de flujo de código abierto Apache Flink lanza una nueva startup, vale la pena prestarle atención. Stephan Ewen formó parte del equipo fundador del proyecto de código abierto en 2010 y luego se convirtió en el CTO de Data Artisans, cuyo objetivo era monetizar Flink. Luego, Alibaba adquirió la compañía en 2019 y la rebautizó como Ververica, y Ewen pasó los tres años requeridos en la compañía antes de lanzar la startup de flujos de trabajo como código Restate, junto con los comprometidos de Flink y los ex compañeros de trabajo de Data Artisan/Ververica, Igal Shilman y Hasta Rohrmann.
Restate, que afirma que su misión general es facilitar el desarrollo de aplicaciones distribuidas, anunció hoy que ha recaudado una ronda de financiación inicial de 7 millones de dólares, alcanzando la versión 1.0 de su versión abierta con licencia BSL y que está lanzando su servicio gestionado en la nube.
La promesa de Restate es que es tan rápido y liviano que permitirá a los desarrolladores usarlo donde los sistemas de flujo de trabajo tradicionales habrían sido demasiado lentos y consumirían muchos recursos. Esto está respaldado por un motor de ejecución duradero que puede configurar una comunicación tolerante a fallas entre servicios y procesos, y que se integra con plataformas de función como servicio como AWS Lambda y Cloudflare Workers. Si bien es ideal para la arquitectura de microservicios, los desarrolladores también pueden usarlo para colas de tareas, procesamiento de eventos u orquestación de servicios en sistemas como gestión de inventario o reservas.
Sin embargo, vale la pena señalar que Restate no es el primero en utilizar este concepto. La plataforma de código abierto Temporal, por ejemplo, ofrece un conjunto de características algo similar, aunque el equipo de Restate probablemente argumentaría que su sistema es más rápido y liviano.
Ewen dijo que después de trece años con Flink, era hora de abordar un nuevo problema. “Mientras trabajábamos en Flink, teníamos este conjunto de casos de uso que seguían apareciendo, en los que la gente abusaba de Flink por su estilo de orquestación transaccional. casos de uso”, me dijo. “Y no fue genial cuando lo usaron para eso, pero nos dijeron que no encontraron nada más”.
Después de ver a los usuarios hacer esto una y otra vez, el equipo decidió que si iban a crear otra empresa, buscarían cómo resolver este problema de manera más elegante.
Prácticamente todas las aplicaciones modernas actuales consisten en cadenas de flujos de trabajo que son manejados por un conjunto distribuido de servicios que deben comunicarse entre sí de manera confiable. Se necesita un equipo muy experimentado para construir un sistema distribuido tolerante a fallos como ese (y muchas empresas construyen el suyo propio), pero también es algo que está en juego y no es algo que necesariamente vaya a ayudar a esas empresas a diferenciar su producto.
Al observar esto, me dijo Ewen, el equipo tomó algunas de las ideas de procesamiento basado en flujos de Flink y luego las combinó con el concepto de flujos de trabajo como código y un registro de eventos especializado, porque en el centro de cada motor de flujo de trabajo hay un registro. . “Restate toma la idea del flujo de trabajo como código y agrega algunas otras ideas inspiradas en el procesamiento de flujo. Lo evolucionamos hacia un modelo de programación distribuida de propósito más general basado en ejecución duradera, objetos virtuales y promesas duraderas, y lo pusimos sobre una base impulsada por eventos”, dijo Ewen.
El motor que lo impulsa es muy pequeño y liviano y, enfatizó Ewen, rápido, en parte porque se envía como un solo binario. Él cree que esto hará que el servicio sea utilizable en situaciones en las que normalmente no se usaría un motor de flujo de trabajo; piense en los carritos de compras de comercio electrónico, por ejemplo. Un motor de flujo de trabajo liviano, con garantías integradas, ejecución duradera y reintentos si algo sale mal, garantiza que los artículos de un carrito de compras abandonado se devuelvan a otros clientes después de un tiempo determinado, por ejemplo, minimizando el riesgo de que algo falle. el proceso.
“[Restate] Los flujos de trabajo clásicos codifican cosas, solo que sobre una base extremadamente liviana, y va un poco más allá de los casos de uso de flujos de trabajo estándar. Incorpora la comunicación y la gestión del estado como concepto central, por lo que realmente puedes usarlo para crear cosas que no son buenos casos para los flujos de trabajo pero que aún encajan muy bien si quieres construir una arquitectura de microservicio adecuada”, explicó Ewen.
La compañía también lanzó hoy su Restate Cloud alojado en acceso temprano. Por ahora, está disponible de forma gratuita y Ewen fue bastante abierto sobre el hecho de que el equipo todavía está tratando de descubrir cómo lo usará la gente antes de decidir cómo monetizar el servicio.
La ronda de financiación de la empresa fue liderada por Redpoint Ventures, con la participación de Essence VC, firstminuto.capital y ángeles como el fundador de Datadog, Oli Pomel y Apache Kafka, y los fundadores de Confluent, Jay Kreps y Neha Narkhede. La empresa utilizará los fondos para contratar y desarrollar su infraestructura, así como para llevar su SDK a más lenguajes (actualmente es compatible con TypeScript, Java y Kotlin).
“Aún es un desafío lograr que las aplicaciones transaccionales distribuidas sean correctas, resistentes y escalables”, afirmó Kreps. “El enfoque de Restate de combinar una ejecución duradera y arquitecturas basadas en eventos es un gran paso para solucionar este problema”.