Using RX to "PIVOT"/GroupBy incoming event data with a unique id into a single output event over a Window period


  • I have a set of "events" coming in from different sources (like our trade system or credit reporting system). Each of these "events" looks like:

    {"IdToJoinOn": "UniqueId", "Property1": "Value", "Property2":"Value", "Timestamp": ".."}

    I can get these events over a 10 second window (as noted in the Timestamp field, and not in 10 seconds wall clock).

    Is there a way to join on these operations by "IdToJoinOn" and generate a single output event, and ensuring we wait for 10 seconds of "Timestamp" values to make sure we've got all the event data?

    You may be wondering what happens if this was the "last event" in the stream -- when will we output that? I don't have a good answer and am looking for suggestions. Maybe we have some sort of periodic event .. like a "Flush" that ensures it gets flushed out?

    I see a "Window", and a bunch of "GroupBy"'s --- I just don't know how ..

    Tuesday, December 10, 2013 6:59 AM