SlideShare a Scribd company logo
1 of 26
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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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)
• Content negotiation
Putting it together
Spring Cloud Stream - DEMO
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 caption.
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal 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 caption.
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal 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 caption.
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal 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 caption.
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal 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

What's hot

Soa design pattern
Soa design patternSoa design pattern
Soa design pattern
Lap Doan
 
Dev net and_tech_centers_working_together_final_for_tech_center_webex_session...
Dev net and_tech_centers_working_together_final_for_tech_center_webex_session...Dev net and_tech_centers_working_together_final_for_tech_center_webex_session...
Dev net and_tech_centers_working_together_final_for_tech_center_webex_session...
Ravanne Harris
 
Red Hat JBOSS_ FuseServiceWorks_Feb2015
Red Hat JBOSS_ FuseServiceWorks_Feb2015Red Hat JBOSS_ FuseServiceWorks_Feb2015
Red Hat JBOSS_ FuseServiceWorks_Feb2015
Isaac Wm. Cornetti
 

What's hot (20)

Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
Cloud Foundry Networking: Enabling Direct Communicatitions for Microservices
 
EAI (Integration) and Mulesoft
EAI (Integration) and MulesoftEAI (Integration) and Mulesoft
EAI (Integration) and Mulesoft
 
Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01
 
Liferay 7
Liferay 7Liferay 7
Liferay 7
 
Soa design pattern
Soa design patternSoa design pattern
Soa design pattern
 
Dev net and_tech_centers_working_together_final_for_tech_center_webex_session...
Dev net and_tech_centers_working_together_final_for_tech_center_webex_session...Dev net and_tech_centers_working_together_final_for_tech_center_webex_session...
Dev net and_tech_centers_working_together_final_for_tech_center_webex_session...
 
Impact 2014 Best practices for_cics_soa_co
Impact 2014 Best practices for_cics_soa_coImpact 2014 Best practices for_cics_soa_co
Impact 2014 Best practices for_cics_soa_co
 
Spring Cloud on Kubernetes
Spring Cloud on KubernetesSpring Cloud on Kubernetes
Spring Cloud on Kubernetes
 
7 eai-patterns
7 eai-patterns7 eai-patterns
7 eai-patterns
 
Twelve factor-app
Twelve factor-appTwelve factor-app
Twelve factor-app
 
SOA & ESB Presentation
SOA & ESB PresentationSOA & ESB Presentation
SOA & ESB Presentation
 
Unit 07: Design Patterns and Frameworks (1/3)
Unit 07: Design Patterns and Frameworks (1/3)Unit 07: Design Patterns and Frameworks (1/3)
Unit 07: Design Patterns and Frameworks (1/3)
 
Introduction to WebRTC on the Force.com Platform
Introduction to WebRTC on the Force.com PlatformIntroduction to WebRTC on the Force.com Platform
Introduction to WebRTC on the Force.com Platform
 
.NET and Kubernetes: Bringing Legacy .NET Into the Modern World with Pivotal ...
.NET and Kubernetes: Bringing Legacy .NET Into the Modern World with Pivotal ....NET and Kubernetes: Bringing Legacy .NET Into the Modern World with Pivotal ...
.NET and Kubernetes: Bringing Legacy .NET Into the Modern World with Pivotal ...
 
Why Enterprise Service Bus (ESB)
Why Enterprise Service Bus (ESB)Why Enterprise Service Bus (ESB)
Why Enterprise Service Bus (ESB)
 
Red Hat JBOSS_ FuseServiceWorks_Feb2015
Red Hat JBOSS_ FuseServiceWorks_Feb2015Red Hat JBOSS_ FuseServiceWorks_Feb2015
Red Hat JBOSS_ FuseServiceWorks_Feb2015
 
J2EE Technology Mapping-21-may-2014
J2EE Technology Mapping-21-may-2014J2EE Technology Mapping-21-may-2014
J2EE Technology Mapping-21-may-2014
 
ESB Concepts
ESB ConceptsESB Concepts
ESB Concepts
 
Pilot Study - WSO2 Enterprise Integrator v6.1.1
Pilot Study - WSO2 Enterprise Integrator v6.1.1Pilot Study - WSO2 Enterprise Integrator v6.1.1
Pilot Study - WSO2 Enterprise Integrator v6.1.1
 
SaaS Introduction-May2014
SaaS Introduction-May2014SaaS Introduction-May2014
SaaS Introduction-May2014
 

Similar to Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - SpringOne Tour NYC

Similar to Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - SpringOne Tour NYC (20)

Cloud Event Driven Architectures with Spring Cloud Stream 2.0
Cloud Event Driven Architectures with Spring Cloud Stream 2.0Cloud Event Driven Architectures with Spring Cloud Stream 2.0
Cloud Event Driven Architectures with Spring Cloud Stream 2.0
 
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg ZhurakouskyCloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
 
Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques
Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques
Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques
 
Simple Data Movement Patterns: Legacy Application to Cloud-Native Environment...
Simple Data Movement Patterns: Legacy Application to Cloud-Native Environment...Simple Data Movement Patterns: Legacy Application to Cloud-Native Environment...
Simple Data Movement Patterns: Legacy Application to Cloud-Native Environment...
 
Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-In
Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-InSteeltoe: Develop .NET Microservices Without Cloud Platform Lock-In
Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-In
 
P to V to C: The Value of Bringing “Everything” to Containers
P to V to C: The Value of Bringing “Everything” to ContainersP to V to C: The Value of Bringing “Everything” to Containers
P to V to C: The Value of Bringing “Everything” to Containers
 
Cross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud FoundryCross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud Foundry
 
How to Build More Secure Service Brokers
How to Build More Secure Service BrokersHow to Build More Secure Service Brokers
How to Build More Secure Service Brokers
 
Migrating from Big Data Architecture to Spring Cloud
Migrating from Big Data Architecture to Spring CloudMigrating from Big Data Architecture to Spring Cloud
Migrating from Big Data Architecture to Spring Cloud
 
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
 
Serverless Spring 오충현
Serverless Spring 오충현Serverless Spring 오충현
Serverless Spring 오충현
 
Day 3: Security Auditing and Compliance
Day 3: Security Auditing and ComplianceDay 3: Security Auditing and Compliance
Day 3: Security Auditing and Compliance
 
Caching for Microservives - Introduction to Pivotal Cloud Cache
Caching for Microservives - Introduction to Pivotal Cloud CacheCaching for Microservives - Introduction to Pivotal Cloud Cache
Caching for Microservives - Introduction to Pivotal Cloud Cache
 
Building a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data FlowBuilding a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data Flow
 
PKS: The What and How of Enterprise-Grade Kubernetes
PKS: The What and How of Enterprise-Grade KubernetesPKS: The What and How of Enterprise-Grade Kubernetes
PKS: The What and How of Enterprise-Grade Kubernetes
 
Federated Queries with HAWQ - SQL on Hadoop and Beyond
Federated Queries with HAWQ - SQL on Hadoop and BeyondFederated Queries with HAWQ - SQL on Hadoop and Beyond
Federated Queries with HAWQ - SQL on Hadoop and Beyond
 
Custom App Autoscaler Using Cloud Controlly API
Custom App Autoscaler Using Cloud Controlly APICustom App Autoscaler Using Cloud Controlly API
Custom App Autoscaler Using Cloud Controlly API
 
Lattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsLattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring Applications
 
Data Modernization for Spring-Based Microservices on Pivotal Platform
Data Modernization for Spring-Based Microservices on Pivotal PlatformData Modernization for Spring-Based Microservices on Pivotal Platform
Data Modernization for Spring-Based Microservices on Pivotal Platform
 
Building a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / SpringBuilding a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / Spring
 

More from VMware Tanzu

More from VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
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 | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 

Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - SpringOne Tour NYC

  • 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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) • Content negotiation
  • 16. Putting it together Spring Cloud Stream - DEMO
  • 17. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal 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 Piv otal 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 Piv otal 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 Piv otal 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 caption.
  • 22. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal 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 caption.
  • 23. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal 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 caption.
  • 24. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal 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 caption.
  • 25. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal 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

Editor's Notes

  1. The emergence of microservices and cloud native architectures has triggered a resurgence of interest in Event Driven and Streaming Architectures where Event is one of the building blocks and the primary mechanism for enabling eventual consistency in a distributed system. But what is Cloud Native Architectures? What is Event and Event Driven Arch? Not something that is new. In fact it is not new at all but it is evolving in such speed that we constantly need to redefine, clarify, expend and formulate what does it really mean to us? If ask people to define the cloud what are the chances I’ll get the same answer?
  2. The emergence of microservices and cloud native architectures has triggered a resurgence of interest in Event Driven and Streaming Architectures where Event is one of the building blocks and the primary mechanism for enabling eventual consistency in a distributed system. But what is Cloud Native Architectures? What is Event and Event Driven Arch? Not something that is new. In fact it is not new at all but it is evolving in such speed that we constantly need to redefine, clarify, expend and formulate what does it really mean to us? If ask people to define the cloud what are the chances I’ll get the same answer?
  3. Allows clients to communicate and integrate with one another using cloud-managed shared services
  4. LocalTime.now(); - not true
  5. LocalTime.now(); - not true
  6. LocalTime.now(); - not true
  7. LocalTime.now(); - not true