Elements of a Message Stream
Like Notifications, Message Streams can come into or out of FME:
However, rather than using Automations with workspace readers and writers, message streams are handled by transformers. A "receiver" transformer acts as an action, listening to a message stream and responding when a message is received. A "sender" transformer acts as a trigger, creating a message and sending it directly to an open message stream.
Transformers and Protocols
A number of transformers can handle message streams, each of which is tied to a specific protocol.
Transformer | Protocol | |
---|---|---|
KafkaConnector | Apache Kafka | |
AzureQueueStorageConnector | Azure Storage Service Queues | |
JMSReceiver | JMSSender | Java Messaging Service (JMS) |
KinesisReceiver | KinesisSender | Amazon Kinesis Streams |
SNSSender | Amazon Simple Notification Service (SNS) | |
SQSConnector | Amazon Simple Queue Service (SQS) | |
TCPIPReceiver | TCPIPSender | Transmission Control Protocol (TCP) |
TweetStreamer | Tweeter | Twitter API |
WebSocketReceiver | WebSocketSender | HTML5 WebSockets |
PythonCreator | PythonCaller | Others |
Receiver Transformers
All receiver transformers in this list are designed to listen continuously to a message source and emit features only when a message arrives. Even then, the transformers will go on listening and awaiting more messages. Therefore, a workspace containing any of these transformers will run continuously and not need to be stopped or started for each message.
Sender Transformers
All sender transformers in this list will emit a message for each feature that enters. They don't, by themselves, keep a workspace running continuously and will shut down when incoming data is exhausted. However they will keep their connection open if a receiver is still running; therefore a continuous flow of outgoing messages requires both a receiver and sender.
Connector Transformers
Connector transformers have an Action parameter that allows for setting them up to function as a sender or a receiver and a Mode parameter to allow them to stream data as it is received.
Python Transformers
The PythonCreator and PythonCaller aren't specifically designed to connect to particular message protocols, but they can be made to do so and are particularly useful for protocols not otherwise supported in FME.