Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Hello! Brian Clozel @bclozel Stéphane Nicoll @snicoll
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Dependency management upgrades 1 3
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Immutable @ConfigurationProperties 1 7
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Immutable @ConfigurationProperties 1 8 @ConfigurationProperties("acme") @ConstructorBinding public class AcmeProperties { private final Duration timeout; private final DataSize bufferSize; private final Security security; public AcmeProperties(@DefaultValue("10s") Duration timeout, DataSize bufferSize, Security security) {
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Immutable @ConfigurationProperties @ConstructorBinding @ConfigurationProperties("acme") data class AcmeProperties( val timeout: Duration = Duration.ofSeconds(10), val bufferSize: DataSize?, val security: Security) 1 9
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Immutable Config Props https://github.com/snicoll/demo-immutable-config-props #springone @s1p
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Health indicator groups management.endpoint.health.group.liveness.include=ping management.endpoint.health.group.readiness.include=db,redis GET /actuator/health/liveness GET /actuator/health/readiness 2 1
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ https://start.spring.io update
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ How many projects do we generate a year?
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ How many projects do we generate a year?
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ How many projects do we generate a year?
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ How many projects do we generate a year? ✅
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ How many projects do we generate a year? ✅ month
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What are the top 3 countries?* * Sep 2018 - Sep 2019
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What are the top 3 countries?* * Sep 2018 - Sep 2019
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What are the top 3 countries?* * Sep 2018 - Sep 2019
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What are the top 3 countries?* * Sep 2018 - Sep 2019
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What are the top 3 countries?* * Sep 2018 - Sep 2019
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s the client split?* * Sep 2018 - Sep 2019
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s the client split?* * Sep 2018 - Sep 2019
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s the client split?* * Sep 2018 - Sep 2019 (without China)
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive messaging with RSocket
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive Streams RSocket Reactive Streams Reactive Streams
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ .Python .NET Go C++ JavaScript Java Reactive Streams Reactor RSocket
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Framework Spring Security Spring Boot RSocket Project Reactor Spring Cloud Gateway Spring Integration
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Framework Spring Security Spring Boot RSocket Project Reactor Spring Cloud Gateway Spring Integration
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ An application protocol for multiplex, duplex communication 5 4
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 5 6 WebSocket TCP UDP ... RSocket
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 5 7 Multiplex with 4 interaction models ... WebSocket TCP ...
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 5 8 PAYLOAD REQUEST RESPONSE Request Response
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 5 9 PAYLOAD REQUEST STREAM PAYLOAD PAYLOAD PAYLOAD Request Stream
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6 1 REQUEST FNF Request Fire-and-Forget
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6 2 Multiplex with 4 interaction models Duplex ... WebSocket TCP ...
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6 3 Requester Responder 1 2 Client
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6 4 Responder Requester 1 2 Server
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6 5 Multiplex with 4 interaction models Duplex Reactive Streams ... WebSocket TCP ...
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6 6 REQUEST_STREAM N = 2 PAYLOAD Back Pressure PAYLOAD PAYLOAD REQUEST_N N = 3 ... ... PAYLOAD PAYLOAD ...
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6 8 REQUEST STREAM Connectivity Loss A B C D
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6 9 RESUME Session Resumes after Reconnect C D E F
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Back pressure is per stream 7 0
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What about the total number of requests and streams? 7 1
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 7 3 LEASE REQUESTS = 3 Requester Responder Request Throttling with LEASE
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ RSocket support in Spring Boot 7 6
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Airport Radar Austin (AUS) BA-456 AF-123 S1-789 101110101001010
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Flight Tracker Web App Radar Collector Airport radars [code + geolocation] RSocket TCP Flight Tracker User Preferences RSocket WebSocket
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Flight Tracker Flight Tracker Web App User Preferences "locate.aircrafts.for" (+radars) "locate.radars.within" RSocket WebSocket "fetch.profile.me" "fetch.profile.{login}"
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Flights Application https://github.com/bclozel/spring-flights #springone @s1p
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ How to Get Productive with Spring Boot The State of Kotlin Support in Spring State of Reactor 2019 Testing Spring Boot Applications Keeping Up with Java: Look at All These New Features! ... https://springoneplatform.io 8 9
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ ⚡Forward-looking statements⚡
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Boot 2.1.x EOL end of Q1 2020 9 8
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Change of release cadence (6 months) 9 9