2002: Rod Johnson publishes book addressing J2EE complexities
2003: Rod Johnson, Juergen Hoeller, and Yann Caroff start the Spring Framework open source project
2004: Spring Framework 1.0 is released
2008: Spring Security 2.0 is released, renaming it from Acegi
2011: Spring Data takes on NoSQL workloads with Spring Data MongoDB, Spring Data Redis, Spring Data Neo4j, and Spring Data GemFire
2014: Spring Boot 1.0 is released, introducing rapid application development
2014: Spring Batch 3.0 released, switching to Spring Boot's dynamic bootstrapping capabilities over archetypes
2014: Spring Integration 4.0 enables integration flows to be configured without XML
2015: Spring Cloud 1.0 is released, providing tools to quickly build software for distributed systems
2016: Spring Cloud Task is introduced, supporting short-lived microservices
2016: Spring Cloud Stream 1.0 is released, enabling event-driven microservices
2016: Spring Cloud Data Flow 1.0 is released, providing an orchestration service for data microservices
2016: Spring Cloud Data Flow for Kubernetes 1.0 orchestrates long-running (streaming) and short-lived (task/batch) data microservices on Kubernetes
2018: Spring Cloud Skipper 1.0 allows app discovery and lifecycle management on multiple cloud platforms
2021: Spring Cloud Gateway for Kubernetes automates the deployment of an API gateway service by applying YAML configuration objects to a Kubernetes cluster
2022: Spring Boot 3 and Spring Framework 6 enable natively compiled applications to run more efficiently in environments like Kubernetes via GraalVM

Thank you Spring! Congratulations on 20 years of innovation. Celebrate with us at SpringOne. Push button B to continue your quest.