What is S4?

S4 is a general-purpose,near real-time, distributed, decentralized, scalable, event-driven, modular platform that allows programmers to easily implement applications for processing continuous unbounded streams of data.

S4 0.5 focused on providing a functional complete refactoring.

S4 0.6 builds on this basis and brings plenty of exciting features, in particular:

What are the cool features?

Flexible deployment:

Modular design:

Dynamic and loose coupling of S4 applications:

Fault tolerant

Pure Java: statically typed, easy to understand, to refactor, and to extend

How does it work?

Some definitions

Platform

an ongoing integration with Apache Helix will remove these limitations and allow a variable number of nodes and rebalancing the partitions

Applications

External streams are a special kind of stream that:

Adapters are S4 applications that can convert external streams into streams of S4 events. Since adapters are also S4 applications, they can be scaled easily.

A hierarchical perspective on S4

The following diagram sums-up the key concepts in a hierarchical fashion:

image

Note

S4 0.6 works exclusively with TCP