Der Hauptwert einer Workflow-Engine ist, dass es möglich macht, die Abläufe durch eine Workflow-Definition-DSL anzupassen. Wenn Sie nicht möchten, dass Benutzer ihre eigenen beliebigen Workflows definieren können, sind Sie besser dran, Ihren eigenen zu erstellen.
Außerdem bieten Workflow-Engines normalerweise die Möglichkeit, sehr lang laufende Geschäftsvorgänge und Regeln zu definieren. Zum Beispiel können Sie einen Workflow für die Genehmigung von Bestellungen haben, bei dem der erste Schritt darin besteht, einige Informationen darüber einzugeben, was gekauft werden muss, dann haben Sie Regeln wie z.B. wenn der Kaufpreis weniger als 100 $ beträgt, sofort genehmigen, wenn er zwischen 100 $ und 2000 $ liegt, kann der Linienmanager genehmigen, wenn es mehr ist, senden Sie es an jemand anderen zur Genehmigung ... usw. Diese Arten von Geschäftsregeln neigen dazu, sich im Laufe der Jahre zu ändern, wenn die Beträge erhöht werden oder sich die Geschäftspolitik eines Unternehmens ändert. Daher macht es in solchen Szenarien Sinn, eine Workflow-Engine zu verwenden. Andere gute Beispiele für komplexe Geschäftsvorgänge, die von einer Workflow-Engine profitieren können, sind das Stellen eines Versicherungsanspruchs, die Genehmigung eines Darlehens oder einer Hypothek, die Prüfung eines Kreditantrags eines Kunden ... usw. Diese Geschäftsvorgänge durchlaufen normalerweise mehrere Personen / Abteilungen und dauern mehrere Stunden bis Tage oder Wochen, um abgeschlossen zu werden.
Regel-Engines eignen sich gut, um komplexe, sich ändernde Regeln aus einer Anwendung herauszuziehen. Angenommen, Sie sind ein Online-Händler, der an Kunden in den USA, Kanada, Großbritannien, Deutschland und Frankreich versendet. Sie sind verpflichtet, Steuern auf die Produkte zu erheben, die Sie in Ihrem Online-Shop verkaufen. Die Regeln für die Berechnung der Steuern sind jedoch von Land zu Land und von Provinz zu Provinz innerhalb eines Landes unterschiedlich. Außerdem sind manche Dinge in einer Provinz von der Steuer befreit, in anderen Provinzen jedoch nicht. Regel-Engines sind ideal für diese Art von komplexen Geschäftsregeln, die sich ändern können, wann immer die Regierung ihre Steuerpolitik ändert. Regel-Engines können Ihnen sofort eine Antwort geben. Sie müssen nur zur Regel-Engine gehen, sagen, dass Sie Regel #10 ausführen möchten und hier sind die Eingaben für Regel #10 x, y, z und Sie erhalten eine Antwort zurück.
Der Hauptunterschied zwischen einer Regel-Engine und einer Workflow-Engine besteht darin, dass eine Regel-Engine den Status der Transaktion nicht verfolgt. Sie sollte zustandslos sein und nur mit den von Ihnen bereitgestellten Eingaben arbeiten. Eine Workflow-Engine ist zustandsbehaftet, sie muss wissen, in welchem aktuellen Zustand sich der Workflow befindet, und diesen Zustand in einer Datenbank speichern. Workflow-Engines warten auch auf Eingaben von externen Quellen wie Personen oder Systemen.
Basierend auf der Beschreibung Ihrer App würde ich einfach einige Groovy-Klassen schreiben, um den nächsten Zustand eines Tickets zu berechnen und sicherzustellen, dass die Klasse gut dokumentiert und einfach zu aktualisieren ist in ein paar Jahren. Ich denke, Regel-Engines und Workflow-Engines sind für Ihre Situation überdimensioniert, der Zeitaufwand für deren Einrichtung und Nutzung ist viel größer, als es dauern würde, den Code in Groovy zu schreiben. Wenn Sie im Laufe der Zeit feststellen, dass Sie die Komplexität von Regel-Engines und Workflow-Engines benötigen, würde ich den Preis damals bezahlen, anstatt jetzt, es einfach zu halten ist immer die beste Wahl.