I’d like to draw your attention to a new CCL feature introduced in ESP SP08: Keyed Streams. We’ve just published a white paper that provides a detailed look at keyed streams. In brief:
- they replace Delta Streams, which were more restrictive (delta streams are still supported – to maintain backwards compatibility, but for any new projects, you are better off using keyed streams)
- keyed streams a created with a CREATE STREAM statement, but with the addition of a PRIMARY KEY clause. So without a PRIMARY KEY clause, it’s a “normal” stream – just like we have today. But the addition of the PRIMARY KEY clause in the CREATE STREAM statement, changes the behavior of the stream with respect to opcode handling:
- while normal streams will only emit inserts, even if they receive events with other opcodes, keyed streams will preserve the opcode of the incoming event. Thus a keyed stream can emit inserts, updates, and deletes (and if its a keyed input stream, also upserts)
One thing this allows you to do is have a completely stateless model that preserves opCodes. And again, it removes some of the restrictions that delta streams have. For more detail, check out the white paper.