Skip to content

Latest commit

 

History

History
51 lines (37 loc) · 2.75 KB

01-Introductions.md

File metadata and controls

51 lines (37 loc) · 2.75 KB

01. Introductions

Goal(s)

The goal of this workshop is to provide an overview of the current state of the Spring Cloud Stream project and build a few sample application demonstrating the features of the project. Specifically, this workshop material focuses on the new functional programming model introduced in SCSt 3.x.

Overview

The Spring Cloud Stream project is a mature subproject of the Spring Cloud umbrella. SCSt was designed to make it easier for developers to write and manage streaming applications and to introducing a layer of separation between the underlying streaming platform. This will result in significant portions of business logic that is completely decoupled from the underlying APIs and allow for greater portability.

From the SCSt docs:

Spring Cloud Stream is a framework for building highly scalable event-driven microservices connected with shared
messaging systems.

The framework provides a flexible programming model built on already established and familiar Spring idioms and best
practices, including support for persistent pub/sub semantics, consumer groups, and stateful partitions.

In theory, most if not all underlying streaming platforms will need to provide similar semantic solutions that can be generalized by a higher-level framework.

Spring Cloud Stream (The Framework)

Spring Cloud Stream is broken up into two distinct layers: the SCSt framework itself, and Binders. Binders provide the underlying implementation of the streaming platform being leveraged (e.g. RabbitMQ, Kafka, Solace PubSub, etc.). Developers should be familiar with this design pattern as it has been frequently implemented in other data persistence platforms like JDBC or JPA.

SCSt allows for multiple binder implementations to be configured within the same application as integration patterns often may integrate streams of events from one platform to another.

Core Concepts

TODO define these concepts: