I'm stuck on an architectural question regarding the following:
Edit:
So I might be over thinking the problem, or I might rephrase the question. NServiceBus seems to be made for Messaging
and Routing
(of stream-like data?), whereas StreamInsight seems to be made for Event Stream Processing
, Event Querying
and Correlating
. :).
Are there any benefits (eg. in terms of scalability, redundancy) of using Approach 1 over Approach 2?
"Approach 1"
which is a bus (e.g. NServiceBus) to get data into the database and use StreamInsight solely for querying/correlating.
"Approach 2"
which doesn't use NServiceBus but instead leverages Input/Output adapters as Pub/Sub whereas the Sub is the Output adapter which 'actively pushes the data into the Database'?
Original:
We are creating an application where Twitter data is streamed into our environment. This data is:
- Stored as raw (event) input data
- Parsed/filtered
- Queried (using StreamInsight CEP)
- Remaining data after previous steps is stored as complex event
For step 1 I'm not sure to what the most desired approach is:
- Use StreamInsight to split the datastream in two where an output adapter stores raw data in a database on one side and where another output adapter sends the data for further parsing/filtering (step 2) to another input adapter.
-or-
- Use a different technology (MSMQ? Azure Service Bus?) for 'routing the raw data stream to the database'
Any guidance is greatly appreciated!