Ich stecke gerade in einem Projekt fest, wo ich eine API für Bildverarbeitung aufsetze und mich frage, ob ich wirklich eine asynchrone Pipeline brauche. Die Bilder kommen in unregelmäßigen Abständen und die Verarbeitungsschritte sind manchmal recht langsam, aber ich habe das Gefühl, ich könnte alles auch einfach synchron in einer Worker-Queue abhandeln. Irgendwie habe ich Bedenken, dass die ganze Komplexität den Aufwand nicht wert ist, besonders weil ich noch nie etwas in diesem Umfang gebaut habe. Mich beschäftigt vor allem, ob ich damit nicht Over-Engineering betreibe.
Es klingt vernünftig zuerst abzuwägen was wirklich benötigt wird bevor man eine asynchrone Pipeline baut.
Wenn die Bilder unregelmäßig kommen und die Schritte teils langsam sind wirkt eine einfache Warteschlange oft robust und vermeidet unnötige Komplexität.
Es hilft eine klare Messung von Latenz und Durchsatz zu machen bevor man baut damit man nicht nur spekuliert.
Eine mögliche Startlösung ist ein synchroner Ablauf mit einem Worker Pool der Aufgaben seriell abarbeitet und sich langsamer anfühlt aber sehr überschaubar bleibt.
Würde eine kleine isolierte Komponente helfen oder geht es eigentlich darum die Zielsetzung zu klären?
Ich halte es fraglich ob der ganze Aufwand wirklich sinnvoll ist denn oft reicht einfache Synchronität aus.