SlideShare a Scribd company logo
Spring Cloud Stream - developer
recipes, what’s new and what’s next?
Oleg Zhurakousky
@z_oleg
1
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Disclaimer - fine print
2
This presentation contains statements relating to Pivotal’s expectations, projections, beliefs and prospects which are “forward-looking
statements” about Pivotal’s future which by their nature are uncertain. Such forward-looking statements are not guarantees of future
performance, and you are cautioned not to place undue reliance on these forward-looking statements. Actual results could differ materially
from those projected in the forward-looking statements as a result of many factors, including but not limited to: (i) adverse changes in
general economic or market conditions; (ii) delays or reductions in information technology spending; (iii) risks associated with managing the
growth of Pivotal’s business, including operating costs; (iv) changes to Pivotal’s software business model; (v) competitive factors, including
pricing pressures and new product introductions; (vi) Pivotal’s customers’ ability to transition to new products and computing strategies such
as cloud computing, the uncertainty of customer acceptance of emerging technologies, and rapid technological and market changes; (vii)
Pivotal’s ability to protect its proprietary technology; (viii) Pivotal’s ability to attract and retain highly qualified employees; (ix) Pivotal’s ability
to execute on its plans and strategy; and (x) risks related to data and information security vulnerabilities. All information set forth in this
presentation is current as of the date of this presentation. These forward-looking statements are based on current expectations and are
subject to uncertainties and changes in condition, significance, value and effect as well as other risks disclosed previously and from time to
time in documents filed by Dell Technologies Inc., the parent company of Pivotal, with the U.S. Securities and Exchange Commission. Dell
and Pivotal assume no obligation to, and do not currently intend to, update any such forward-looking statements after the date of this
presentation. The following is intended to outline the general direction of Pivotal’s offerings. It is intended for information purposes only and
may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned
modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind,
express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making
purchasing decisions regarding Pivotal’s offerings. These purchasing decisions should only be based on features currently available. The
development, release, and timing of any features or functionality described for Pivotal’s offerings in this presentation remain at the sole
discretion of Pivotal. Pivotal has no obligation to update forward-looking information in this presentation.
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Scope
3
•  What is Cloud?
•  What is Event and Event driven Architecture?
•  Streaming
•  Putting it all together with Spring Cloud Stream
•  What’s new in 2.0?
•  What’s next?
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Cloud
4
•  Ecosystem that integrates platforms and middleware into one cohesive hybrid
runtime.
•  Messaging (JMS, AMQP, Kafka, etc.)
•  File Systems
•  Databases
•  Etc. . .
•  Outsources infrastructure concerns to the cloud provider via cloud connectors/
services
•  Provides mechanism for applications services (clients) to interact with cloud
services.
•  Event oriented
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Events
5
•  Event - representation of a state change
•  Always in past tense
•  Events are delivered in a form or protocol specific records using some Messaging
middleware.
•  Many delivery mechanisms
•  HTTP (REST)
•  Publish/Subscribe
•  variation of pipes-and-filters pattern
•  multiple subscribers
•  Events contain meta-data (i.e., event type)
•  Event = Message
Message
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Stream
6
•  Stream - processing graph
•  Event (Message) is injected into the graph operators
•  Graph operators pass events between one another
•  Processing graphs could run in sequence or parallel
︎
︎
stream.flatMap(event -> multipleEvents).map(event -> newEvent). . .︎
Putting it together
Spring Cloud Stream
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Integration
8
•  Messaging framework which provides implementation of EIP
on top of Spring Messaging
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Integration
9
•  Pros/Cons
•  Handles message dispatching while exposing POJO-based flexible
application development model
•  Shares resources
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Stream
10
•  Framework to build highly scalable event-driven and/or streaming microservices.
•  Provides boot-driven integration with Messaging Brokers using Destination Binders
•  Leverages native features of brokers while also providing a workaround for not
supported features.
•  Partitioning
•  Consumer Groups
•  Message Headers
•  Destination provisioning
•  Honors application configurations by the underlying frameworks (spring-integration,
spring-kafka etc.)
•  Kafka & Rabbit are currently supported
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Stream
11
•  Transparent content-type negotiation and argument resolution
•  Ability to connect microservices to external systems
•  Kafka
•  Rabbit MQ
•  JMS
•  Etc. . .
•  Provides flexible programming model
•  Built on familiar Spring idioms - Spring Messaging
•  Supports pub/sub semantics, consumer groups, stateful partitions and other messaging paradigms
•  Message centric
•  Supports Imperative and Declarative programming models
Message
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Stream - programming model
12
•  Imperative
•  Declarative
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Stream
13
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Stream - programming model
14
•  Spring Cloud Stream - Spring Boot app
•  Flexible configuration (i.e., Annotation, XML, hybrid)
•  Binders
•  Streaming
•  KStream
•  Channel-based
•  Kafka
•  Rabbit
•  Seamless integration with the rest of the Spring Cloud stack
•  Metrics
•  Sleuth
•  Config
•  Circuit Braker
•  Etc.
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Stream - summary
15
•  Durable Publish-Subscribe messaging
• For easily creating complex topologies
•  Consumer groups
• Multiple instances can be competing consumers when scaling
•  Declarative data partitioning
• Colocating related data in consumer instances (Kafka, Rabbit etc)
Putting it together
Spring Cloud Stream - DEMO
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What’s new in 2.0?
17
•  Improved Content-type negotiation
•  Default content-type
•  User-defined message converters
•  Polling Consumer
•  New Actuator endpoints for Binding control
•  Metrics - based on Spring Boot support for Micrometer
•  Native support for Apache Kafka streaming
•  https://youtu.be/YPDzcmqwCNo (Josh Long)
•  Web support is now optional
•  Deprecation of Java-based serialization
•  Revamped user guide
Where do we go from here?
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Things to think about. . .
19
•  Bridge-based binding
•  source/target to SI channels
•  user must be aware of Spring, SI and other (dispatching, message immutability etc)
Rabbit queue -> SI channel -> Argument Resolution -> user code -> SI channel -> conversion to wire - target exchange
•  Spring Cloud Stream infrastructure mixed with functional code
•  @EnableBinding
•  Complex message processing use cases (batching/windowing, transactions etc)
•  Serverless (Java 8 Functions)
•  Event based
•  Dynamic resource utilization "scale to 0"
•  Focus on business logic
•  Easy integration with platform services (binders)
•  Cross platform (SCF adapters AWS, Azure, Openwhisk etc)
•  Source/Sink conceptual mismatch (is source and app or just a source?)
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Stream - programming model
20
•  Imperative
•  Declarative
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Source/Sink conceptual missmatch
21
Type	to	enter	a	cap/on.
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Serverless/Functions
22
Type	to	enter	a	cap/on.
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Direct Binding & Function composition
23
Type	to	enter	a	cap/on.
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Functions - cross platform
24
Type	to	enter	a	cap/on.
Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative
Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Stream - Links
25
•  http://cloud.spring.io/spring-cloud-stream
•  https://github.com/spring-cloud/spring-cloud-stream
•  https://github.com/spring-cloud/spring-cloud-stream-binder-kafka
•  https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit
Learn More. Stay Connected.
Thank you!
@z_oleg
26
#springone@s1p

More Related Content

PPTX
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - SpringOne Tou...
PPTX
Spring Cloud on Kubernetes
PDF
Converged open platform for enterprise
PDF
Cloud Foundry Networking with VMware NSX
PDF
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
PDF
.NET Application Modernization with PAS and Azure DevOps
PDF
[Meetup] Building an Integration Agile Digital Enterprise
PPTX
Twelve factor-app
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - SpringOne Tou...
Spring Cloud on Kubernetes
Converged open platform for enterprise
Cloud Foundry Networking with VMware NSX
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
.NET Application Modernization with PAS and Azure DevOps
[Meetup] Building an Integration Agile Digital Enterprise
Twelve factor-app

What's hot (20)

PDF
OOD Principles and Patterns
PPTX
Microservices with Mule
PDF
Deliver Your Service on PKS
PDF
.NET and Kubernetes: Bringing Legacy .NET Into the Modern World with Pivotal ...
PPTX
Solution-Architectures-MADP-20180125
PDF
Lightning Workshop London
PDF
MuCon 2015 - Microservices in Integration Architecture
PPTX
Software application architecture
PPTX
Integration Architecture Agile Enterprise Cag2010a
PPTX
Liferay Platform Overview
PDF
Cloud Configuration Ecosystem at Intuit
PPTX
Securing Pivotal Platform at Prime Therapeutics
PDF
Microservices_vs_SOA
PDF
Placement of BPM runtime components in an SOA environment
PDF
Introduction to WebRTC on the Force.com Platform
PPTX
Citytech Application Modernization Using JBoss Seam
PDF
Mule : Building Blocks for Microservices
PDF
Pilot Study - WSO2 Enterprise Integrator v6.1.1
PDF
DataPower API Gateway Performance Benchmarks
OOD Principles and Patterns
Microservices with Mule
Deliver Your Service on PKS
.NET and Kubernetes: Bringing Legacy .NET Into the Modern World with Pivotal ...
Solution-Architectures-MADP-20180125
Lightning Workshop London
MuCon 2015 - Microservices in Integration Architecture
Software application architecture
Integration Architecture Agile Enterprise Cag2010a
Liferay Platform Overview
Cloud Configuration Ecosystem at Intuit
Securing Pivotal Platform at Prime Therapeutics
Microservices_vs_SOA
Placement of BPM runtime components in an SOA environment
Introduction to WebRTC on the Force.com Platform
Citytech Application Modernization Using JBoss Seam
Mule : Building Blocks for Microservices
Pilot Study - WSO2 Enterprise Integrator v6.1.1
DataPower API Gateway Performance Benchmarks
Ad

Similar to Spring Cloud Stream: What's New in 2.x—and What's Next? (20)

PDF
Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques
PPTX
Cloud Event Driven Architectures with Spring Cloud Stream 2.0
PDF
Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-In
PPTX
Simple Data Movement Patterns: Legacy Application to Cloud-Native Environment...
PDF
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
PDF
P to V to C: The Value of Bringing “Everything” to Containers
PDF
Cross-Platform Observability for Cloud Foundry
PPTX
How to Build More Secure Service Brokers
PPTX
Caching for Microservives - Introduction to Pivotal Cloud Cache
PDF
Day 3: Security Auditing and Compliance
PPTX
Migrating from Big Data Architecture to Spring Cloud
PDF
Building a Data Exchange with Spring Cloud Data Flow
PDF
Lattice: A Cloud-Native Platform for Your Spring Applications
PDF
Building a Secure App with Google Polymer and Java / Spring
PPTX
Custom App Autoscaler Using Cloud Controlly API
PPTX
Data Modernization for Spring-Based Microservices on Pivotal Platform
PDF
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
PDF
S1P: Spring Cloud on PKS
PDF
PKS: The What and How of Enterprise-Grade Kubernetes
PPTX
What We're Learning Adopting Spring Boot and PCF for Dell.com's eCommerce
Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques
Cloud Event Driven Architectures with Spring Cloud Stream 2.0
Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-In
Simple Data Movement Patterns: Legacy Application to Cloud-Native Environment...
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
P to V to C: The Value of Bringing “Everything” to Containers
Cross-Platform Observability for Cloud Foundry
How to Build More Secure Service Brokers
Caching for Microservives - Introduction to Pivotal Cloud Cache
Day 3: Security Auditing and Compliance
Migrating from Big Data Architecture to Spring Cloud
Building a Data Exchange with Spring Cloud Data Flow
Lattice: A Cloud-Native Platform for Your Spring Applications
Building a Secure App with Google Polymer and Java / Spring
Custom App Autoscaler Using Cloud Controlly API
Data Modernization for Spring-Based Microservices on Pivotal Platform
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
S1P: Spring Cloud on PKS
PKS: The What and How of Enterprise-Grade Kubernetes
What We're Learning Adopting Spring Boot and PCF for Dell.com's eCommerce
Ad

More from VMware Tanzu (20)

PDF
Spring into AI presented by Dan Vega 5/14
PDF
What AI Means For Your Product Strategy And What To Do About It
PDF
Make the Right Thing the Obvious Thing at Cardinal Health 2023
PPTX
Enhancing DevEx and Simplifying Operations at Scale
PDF
Spring Update | July 2023
PPTX
Platforms, Platform Engineering, & Platform as a Product
PPTX
Building Cloud Ready Apps
PDF
Spring Boot 3 And Beyond
PDF
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
PDF
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
PDF
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
PPTX
tanzu_developer_connect.pptx
PDF
Tanzu Virtual Developer Connect Workshop - French
PDF
Tanzu Developer Connect Workshop - English
PDF
Virtual Developer Connect Workshop - English
PDF
Tanzu Developer Connect - French
PDF
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
PDF
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
PDF
SpringOne Tour: The Influential Software Engineer
PDF
SpringOne Tour: Domain-Driven Design: Theory vs Practice
Spring into AI presented by Dan Vega 5/14
What AI Means For Your Product Strategy And What To Do About It
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Enhancing DevEx and Simplifying Operations at Scale
Spring Update | July 2023
Platforms, Platform Engineering, & Platform as a Product
Building Cloud Ready Apps
Spring Boot 3 And Beyond
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
tanzu_developer_connect.pptx
Tanzu Virtual Developer Connect Workshop - French
Tanzu Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
Tanzu Developer Connect - French
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: Domain-Driven Design: Theory vs Practice

Recently uploaded (20)

PPT
What is a Computer? Input Devices /output devices
PPTX
Modernising the Digital Integration Hub
PDF
CloudStack 4.21: First Look Webinar slides
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
STKI Israel Market Study 2025 version august
PDF
Five Habits of High-Impact Board Members
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
Getting Started with Data Integration: FME Form 101
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Architecture types and enterprise applications.pdf
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
Web Crawler for Trend Tracking Gen Z Insights.pptx
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PPTX
The various Industrial Revolutions .pptx
What is a Computer? Input Devices /output devices
Modernising the Digital Integration Hub
CloudStack 4.21: First Look Webinar slides
Module 1.ppt Iot fundamentals and Architecture
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
STKI Israel Market Study 2025 version august
Five Habits of High-Impact Board Members
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
Getting Started with Data Integration: FME Form 101
A contest of sentiment analysis: k-nearest neighbor versus neural network
A comparative study of natural language inference in Swahili using monolingua...
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
1 - Historical Antecedents, Social Consideration.pdf
Benefits of Physical activity for teenagers.pptx
Architecture types and enterprise applications.pdf
Developing a website for English-speaking practice to English as a foreign la...
Univ-Connecticut-ChatGPT-Presentaion.pdf
Web Crawler for Trend Tracking Gen Z Insights.pptx
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
The various Industrial Revolutions .pptx

Spring Cloud Stream: What's New in 2.x—and What's Next?

  • 1. Spring Cloud Stream - developer recipes, what’s new and what’s next? Oleg Zhurakousky @z_oleg 1
  • 2. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Disclaimer - fine print 2 This presentation contains statements relating to Pivotal’s expectations, projections, beliefs and prospects which are “forward-looking statements” about Pivotal’s future which by their nature are uncertain. Such forward-looking statements are not guarantees of future performance, and you are cautioned not to place undue reliance on these forward-looking statements. Actual results could differ materially from those projected in the forward-looking statements as a result of many factors, including but not limited to: (i) adverse changes in general economic or market conditions; (ii) delays or reductions in information technology spending; (iii) risks associated with managing the growth of Pivotal’s business, including operating costs; (iv) changes to Pivotal’s software business model; (v) competitive factors, including pricing pressures and new product introductions; (vi) Pivotal’s customers’ ability to transition to new products and computing strategies such as cloud computing, the uncertainty of customer acceptance of emerging technologies, and rapid technological and market changes; (vii) Pivotal’s ability to protect its proprietary technology; (viii) Pivotal’s ability to attract and retain highly qualified employees; (ix) Pivotal’s ability to execute on its plans and strategy; and (x) risks related to data and information security vulnerabilities. All information set forth in this presentation is current as of the date of this presentation. These forward-looking statements are based on current expectations and are subject to uncertainties and changes in condition, significance, value and effect as well as other risks disclosed previously and from time to time in documents filed by Dell Technologies Inc., the parent company of Pivotal, with the U.S. Securities and Exchange Commission. Dell and Pivotal assume no obligation to, and do not currently intend to, update any such forward-looking statements after the date of this presentation. The following is intended to outline the general direction of Pivotal’s offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal’s offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal’s offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward-looking information in this presentation.
  • 3. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Scope 3 •  What is Cloud? •  What is Event and Event driven Architecture? •  Streaming •  Putting it all together with Spring Cloud Stream •  What’s new in 2.0? •  What’s next?
  • 4. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Cloud 4 •  Ecosystem that integrates platforms and middleware into one cohesive hybrid runtime. •  Messaging (JMS, AMQP, Kafka, etc.) •  File Systems •  Databases •  Etc. . . •  Outsources infrastructure concerns to the cloud provider via cloud connectors/ services •  Provides mechanism for applications services (clients) to interact with cloud services. •  Event oriented
  • 5. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Events 5 •  Event - representation of a state change •  Always in past tense •  Events are delivered in a form or protocol specific records using some Messaging middleware. •  Many delivery mechanisms •  HTTP (REST) •  Publish/Subscribe •  variation of pipes-and-filters pattern •  multiple subscribers •  Events contain meta-data (i.e., event type) •  Event = Message Message
  • 6. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Stream 6 •  Stream - processing graph •  Event (Message) is injected into the graph operators •  Graph operators pass events between one another •  Processing graphs could run in sequence or parallel ︎ ︎ stream.flatMap(event -> multipleEvents).map(event -> newEvent). . .︎
  • 8. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Integration 8 •  Messaging framework which provides implementation of EIP on top of Spring Messaging
  • 9. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Integration 9 •  Pros/Cons •  Handles message dispatching while exposing POJO-based flexible application development model •  Shares resources
  • 10. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Stream 10 •  Framework to build highly scalable event-driven and/or streaming microservices. •  Provides boot-driven integration with Messaging Brokers using Destination Binders •  Leverages native features of brokers while also providing a workaround for not supported features. •  Partitioning •  Consumer Groups •  Message Headers •  Destination provisioning •  Honors application configurations by the underlying frameworks (spring-integration, spring-kafka etc.) •  Kafka & Rabbit are currently supported
  • 11. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Stream 11 •  Transparent content-type negotiation and argument resolution •  Ability to connect microservices to external systems •  Kafka •  Rabbit MQ •  JMS •  Etc. . . •  Provides flexible programming model •  Built on familiar Spring idioms - Spring Messaging •  Supports pub/sub semantics, consumer groups, stateful partitions and other messaging paradigms •  Message centric •  Supports Imperative and Declarative programming models Message
  • 12. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Stream - programming model 12 •  Imperative •  Declarative
  • 13. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Stream 13
  • 14. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Stream - programming model 14 •  Spring Cloud Stream - Spring Boot app •  Flexible configuration (i.e., Annotation, XML, hybrid) •  Binders •  Streaming •  KStream •  Channel-based •  Kafka •  Rabbit •  Seamless integration with the rest of the Spring Cloud stack •  Metrics •  Sleuth •  Config •  Circuit Braker •  Etc.
  • 15. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Stream - summary 15 •  Durable Publish-Subscribe messaging • For easily creating complex topologies •  Consumer groups • Multiple instances can be competing consumers when scaling •  Declarative data partitioning • Colocating related data in consumer instances (Kafka, Rabbit etc)
  • 16. Putting it together Spring Cloud Stream - DEMO
  • 17. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s new in 2.0? 17 •  Improved Content-type negotiation •  Default content-type •  User-defined message converters •  Polling Consumer •  New Actuator endpoints for Binding control •  Metrics - based on Spring Boot support for Micrometer •  Native support for Apache Kafka streaming •  https://youtu.be/YPDzcmqwCNo (Josh Long) •  Web support is now optional •  Deprecation of Java-based serialization •  Revamped user guide
  • 18. Where do we go from here?
  • 19. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Things to think about. . . 19 •  Bridge-based binding •  source/target to SI channels •  user must be aware of Spring, SI and other (dispatching, message immutability etc) Rabbit queue -> SI channel -> Argument Resolution -> user code -> SI channel -> conversion to wire - target exchange •  Spring Cloud Stream infrastructure mixed with functional code •  @EnableBinding •  Complex message processing use cases (batching/windowing, transactions etc) •  Serverless (Java 8 Functions) •  Event based •  Dynamic resource utilization "scale to 0" •  Focus on business logic •  Easy integration with platform services (binders) •  Cross platform (SCF adapters AWS, Azure, Openwhisk etc) •  Source/Sink conceptual mismatch (is source and app or just a source?)
  • 20. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Stream - programming model 20 •  Imperative •  Declarative
  • 21. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Source/Sink conceptual missmatch 21 Type to enter a cap/on.
  • 22. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Serverless/Functions 22 Type to enter a cap/on.
  • 23. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Direct Binding & Function composition 23 Type to enter a cap/on.
  • 24. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Functions - cross platform 24 Type to enter a cap/on.
  • 25. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Stream - Links 25 •  http://cloud.spring.io/spring-cloud-stream •  https://github.com/spring-cloud/spring-cloud-stream •  https://github.com/spring-cloud/spring-cloud-stream-binder-kafka •  https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit
  • 26. Learn More. Stay Connected. Thank you! @z_oleg 26 #springone@s1p