I have created a workspace having AzureQueueStorageConnector, which should listen to an Azure queue continuously.
I am able to run it as a Job as well and create a stream as well dedicated to this workspace.
I have also checked this article about the streams:
https://docs.safe.com/fme/2021.0/html/FME_Server_Documentation/WebUI/Streams.htm
I was wondering, what are the differences between these 2 types of running a workspace i.e.
- Running a stream type of workspace with normal execution flow. (from workspace run button)
OR
- Running it as a dedicated Stream (by creating a Stream dedicated to this workspace).
I observed both of the methods listen to the queue continuously and process till the time it is running.
Few of the differences I was able to find are:
- Streams are capable of restarting themselves, regardless of whether the job was completed successfully, failed, or the server crashed or was shut down. But normal Job executions are not capable of doing this by their own.
- Streams need dedicated engines for them to process. Those engines can't be used by any other queues. Which means,
Total number of engines = Total number of streams (one per workspace) * number of engines we want to keep for high availability or scaling purpose
But in the case of normal job execution, it seems no dedicated engine is required.
Are there any other differences between these 2 types of executions?
Thanks in advance!