Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Event Driven Architectures with Spring Cloud Stream 2.0

Cloud Event Driven Architectures with Spring Cloud Stream 2.0

Event-driven have never left the main stage, but with the advent of cloud-native, distributed architectures (such as microservices) it has become more popular than ever. But it is a broad category that covers a variety of use cases, ranging from enterprise integration to data streaming. So, how to make sense of them all, and especially, what are the best tool for the task? In this presentation, we will provide an overview of the various types of event-driven architectures, and how the different message-oriented components of the Spring portfolio (Spring Kafka, Spring AMQP, Spring Integration, Spring Cloud Stream) fit into the picture.

Sabby Anandan

June 01, 2018

More Decks by Sabby Anandan

Other Decks in Technology


  1. Spring Cloud Stream Spring Cloud Task Spring Cloud Skipper Spring

    Flo Spring Cloud Data Flow Sabby Anandan | @sabbyanandan
  2. Real-time Matching Efficient Pickups/Drops Lower Prices Convenient Costs Less to

    Ride Still Reach on Time Customer: Rider(s) Improved Ride Opportunities More Income More Tips Effective Use of Time Customer: Driver 4
  3. Events A State Change: Something already happened —- it’s past

    Decouple senders and receivers in terms of identity System’s interaction with outside world Provide measurability and intent 5
  4. Connectivity to external world Cross-platform/service event visibility Imperative vs. Functional

    programming models Operating on events (content negotiation; transformation; etc.) In Developer View 6
  5. Spring Boot App Low level abstraction on top of Apache

    Kafka. Spring Kafka CLI Input KafkaListener Topic = s1p Apache Kafka payload=“hello world” 7
  6. Spring Boot App Enterprise Integration Patterns with Spring. Spring Integration

    Kafka CLI Input KafkaListener Apache Kafka Integration Flow Topic = s1pIntInput Topic = s1pIntOutput payload=“hello” payload=“HELLO -— HELLO” 8
  7. Spring Boot App Spring Boot App A event-driven microservices framework.

    Spring Cloud Stream Kafka Binder CLI Input Sink Apache Kafka / RabbitMQ / Amazon Kinesis / Google PubSub / Azure Event Hubs … Processor Topic = s1p.dest.in Topic = s1p.dest.out payload=“hello world” payload=“HELLO WORLD” 9
  8. Spring Kafka Spring Integration Kafka Spring Cloud Stream Kafka Binder

    Pluggable Binder Abstraction Partitioning Consumer Groups Message Headers Programming Model: - Imperative (eg: SI Channels) - Functional (eg: Kafka Streams, Reactor Flux) Content-type Negotiation Unit/IT Testing Framework Spring Cloud Stream 10
  9. John Doe: User :Address region: US-NY change my address :Event

    address changed :Event address changed 16
  10. A Social Graph 18 :UserCreated John Doe :UserCreated Jane Cool

    :UserNameChanged Michelle Bryan :UserActivated Yulia Zack
  11. Analytics on Real-time Events Top-5 States with “New Users” in

    a 30 seconds Tumbling Window CA HI IL PA NY 20
  12. Resources SK, SIK, SCStK -> https://github.com/sabbyanandan/springonetour2018 EDA -> https://github.com/sabbyanandan/eda State

    or Events? Which shall I keep? (Kenny B.; Jakub P.) Deconstructing Monoliths with DDD (Rohit K.;David T.; Rohit S.) Experimentation Using Event-based Systems (Martin F.; Toby C.) 22