Stream uses a special type of plugin called "Reactors" to capture and integrate data, and to define data processing logic. Any number of Reactor instances can be configured and connected together to create real-time data processing pipelines, or "Reaction Chains".
SnifferReactor: Passively sniffs network packets, reassembles TCP and decrypts SSL/TLS. Protocol plugins allow you to generate events from any type of network traffic.
AggregateReactor: Aggregates information across multiple events received during an interval of time. Produces new events representing the aggregated information. Can also store historical information into external database tables and produce real-time reports.
ClickstreamReactor: Sessionizes a stream of HTTP request events (or clickstream hits) by grouping them into page views and sessionizes. Appends additional session attributes to the request events and produces two new types of events, one each for page views and sessions.
ContentHashReactor: Performs a hashing algorithm on a content field and uses the result to populate a urn:vocab:clickstream#content-id field. This Reactor controls which content is stored in the Stream Replay database.
FilterReactor: Uses configurable rules to detect new events, sequences or patterns. Delivers events to the reactors it is connected to only when these occur.
FissionReactor: Used to generate multiple events derived from a single source event. Primarily used to extract RSS and Atom content from individual HTTP requests.
PythonReactor: The PythonReactor allows you to build fully-featured Reactors that can create, process, or store events using the Python programming language.
ScriptReactor: Executes a shell script to process each event it receives.
SessionFilterReactor: Uses rules to detect patterns within visitor sessions. Events for a session are queued in memory until a match is found. If a match is found, all the session's events are passed through as output to other Reactors. If no match is found, the events are discarded.
SQLReactor: Uses Database plugins to perform real-time SQL queries derived from the events that it receives. The results of the queries can be used to add additional information to the original event.
TransformReactor: Creates new events which are derived from the events that it receives. This can be used to create entirely new types of complex events (for example, to signify that a pattern has been detected), or to derive new attributes which are based on attributes in existing events (i.e. assign a new attribute to "Internet Explorer" if an existing attribute contains "MSIE").
DatabaseOutputReactor: Stores events directly into database tables using Database plugins
GoogleAnalyticsReactor: Replicates website page tags by delivering real-time clickstream events to Google Analytics using their HTTP interface.
HTTPOutputReactor: Converts incoming events into HTTP requests.
LogOutputReactor: Uses a Codec to store events into log files.
MultiDatabaseReactor: Stores events into a collection of partitioned database tables. Used by Stream Replay to store traffic into an embedded database.
OmnitureAnalyticsReactor: Replicates website page tags by delivering real-time clickstream events to Omniture using their XML/HTTP data insertion API.
UnicaAnalyticsReactor: Replicates website page tags by delivering real-time clickstream events to Webtrends Analytics using their On Demand HTTP API.
WebtrendsReactors: Replicates website page tags by delivering real-time clickstream events to Webtrends Analytics using their On Demand HTTP API.