Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive Spring Data Modules 4 JPA
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ image: Fire at the Bamber Family Home (FAL v.1.3 License)
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ image: Fire at the Bamber Family Home (FAL v.1.3 License)
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ image: Fire at the Bamber Family Home (FAL v.1.3 License)
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ image: Fire at the Bamber Family Home (FAL v.1.3 License)
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ image: Fire at the Bamber Family Home (FAL v.1.3 License)
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Today’s data access • Keep resources busy • Connection contention • Usually synchronous/blocking • Multiple requests • Asynchronous isn’t always a good answer X
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive data access • Asynchronous • Non Blocking • Event Driven • Data as stream 11
Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ image: Fire at the Bamber Family Home (FAL v.1.3 License) Subscriber Backpressure Stream / Flow Subscribe
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What it takes… Project Reactor 3.1 Spring Framework 5.0 Spring Data 2.0 A reactive (asynchronous, ideally non-blocking) driver Optional: Spring Boot 2.0 (Milestone) 13
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What about JDBC/JPA? JDBC is a blocking API JPA is a blocking API Sorry, no reactive JPA support 14
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive Spring Data Reactive Template API Reactive Repository support Reduced feature set 15
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Imperative Template API 16 <T> T insert(T objectToSave) void insertAll(Collection<…> objects) <T> List<T> find(Query query, Class<T> type)
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Safe Harbor Statement 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. 26