As announced in the What’s New in Streams V4 post, one of the key features in InfoSphere Streams V4 is application resiliency. The concept of consistent regions was introduced, which provides an SPL application the ability to recover from failures and guarantee at-least-once tuple processing. This is described in more detail in this post.
This tutorial will take you through the steps of developing a sample application with a consistent region.
As described in this previous streamsdev post, one of the new features of Streams V4 is the concept of consistent regions. Consistent regions provide resiliency to an SPL application by providing the ability to recover from failures. We name these regions consistent because the SPL runtime periodically establishes a consistent state for a given sub-graph (i.e., a region). The consistent state comprises of a collection of persisted operator states that are consistent with having processed all tuples up to a certain logical point. On a failure, a region is reset to its last successfully persisted state, and source/start operators of a region can replay any tuples submitted after the restored state. In most use cases, this replay enables applications to achieve an exactly-once tuple processing semantic. For all use cases, the replay enables applications to achieve at-least-once processing semantic.
This article outlines a technique for supporting redundant flows that only generate a single external effect. The technique is described in terms of an application that generates alerts using text messages (SMS) with a theoretical SMSSink operator, though it can be applied to any sink operator.