Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Going with Data. Christoph Strobl Pivotal Software Inc. @stroblchristoph
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ In a nutshell, reactive programming is about non-blocking, event-driven applications that scale with a small number of threads with back pressure as a key ingredient that aims to ensure producers to not overwhelm consumers. (Rossen Stoyanchev)
Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ {…} Dispatcher Thread: Worker A Thread: Worker B Thread: Worker C
Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ {…} Subscriber Publisher Stream
Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Provider of a potentially unbounded number of sequenced elements. Publisher<T> Subscriber<T> A processing stage - actually both a Subscriber and a Publisher. Processor<T,R> One-to-one lifecycle of a Subscriber subscribing to a Publisher. Subscription
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apply familiar concepts to an new way of expressing functionality. With minimal fluff and surprise!
2013-2017 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ /** * Query for a {@link Flux} of objects of type T from the specified collection. * * @param entityClass the parametrized type of the returned {@link Flux}. * @param collectionName name of the collection to retrieve the objects from * @return the converted collection */ <T> Flux<T> findAll(Class<T> entityClass, String collectionName); /** * Map the results of an ad-hoc query on the collection for the entity class to a * single instance of an object of the * specified type. * * @param query the query class that specifies the criteria * @param entityClass the parametrized type of the returned {@link Mono}. * @return the converted object */ <T> Mono<T> findOne(Query query, Class<T> entityClass);
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ It’s Demo Time https://github.com/christophstrobl/going-reactive-with-spring-data
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive is about efficient resource usage. Even if backed with familiar concepts and framework support, it is no free lunch. The price is complexity.
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ More Spring / Reactive at 15:00 Spring Boot 2.0 Web Applications (Stéphane Nicoll) 16:10 The API Gateway is dead! Long live the API Gateway! (Spencer Gibb) 17:30 Reactive Mythbusters With Reactor (Simon Basle) 18:40 Refactor to Reactive with Spring 5 and Project Reactor (Oleh Dokuka) 12:30 Spring Cloud Stream - a new rick and Morty adventure (Dieter Hubau) 12:30 Advanced Client Load Balancing with Spring Cloud (Alejsandr Tarasov) 13:50 A Day in a Life of a Traveling Open Source Developer (Spencer Gibb) 14:30 Boot yourself, Spring is coming (Evgeniy Borisov, Kirill Tolkachev) 17:00 Data Microservices with Spring Cloud (Orkhan Gasimov) Today Tomorrow
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Framework 5 Project Reactor 3.1 Spring Data Kay Questions ?