0
Cadence Workflow
Die Cadence Workflow Engine wurde bei Uber entwickelt und unter MIT-Lizenz als Open-Sourcing-Lösung bereitgestellt.Der Unterschied zwischen Cadence und der Mehrheit der vorhandenen Workflow-Engines besteht darin, dass es sich auf Entwickler konzentriert und äußerst flexibel und skalierbar ist (bis zu Zehntausenden Updates pro Sekunde und bis zu Milliarden von offenen Workflows).Die Workflows werden als objektorientierte Programme geschrieben und die Engine stellt sicher, dass der Status der Workflow-Objekte, einschließlich Thread-Stacks und lokaler Variablen, bei Host-Fehlern vollständig erhalten bleibt. Cadence wird für praktisch jede Backend-Anwendung verwendet, die über eine einzige hinausgehtAntwort anfordern.Beispiele für die Verwendung sind: Verteilte CRON-Jobs Verwalten von ML- / Daten-Pipelines Reagieren auf Geschäftsereignisse.Zum Beispiel Ausflugsveranstaltungen bei Uber.Der Workflow kann den Status basierend auf empfangenen Ereignissen akkumulieren und bei Bedarf Aktivitäten ausführen.Implementierung von Diensten für die Mesos / Kubernetes-CI-Pipeline Sicherstellen, dass mehrere Dienstaufrufe abgeschlossen sind, wenn eine Anforderung empfangen wird.Einschließlich SAGA-Musterimplementierung Verwalten von Aufgaben von Mitarbeitern (ähnlich wie bei Amazon MTurk) Medienverarbeitung Kundensupport Ticket-Routing Auftragsabwicklung Testdienst ähnlich wie bei ChaosMonkey und vielen anderen. Die anderen Anwendungsfälle basieren auf der Portierung vorhandener Workflow-Engines für die Ausführung auf Cadence.Praktisch jede vorhandene Engine-Workflow-Spezifikationssprache kann für die Ausführung auf Cadence portiert werden.Es wurden mehrere interne Uber-Systeme portiert.Auf diese Weise kann ein einzelner Backend-Service mehrere domänenspezifische Workflow-Systeme versorgen.