List of videos

Spring for the architecturally curious developer by Oliver Drotbohm @ Spring I/O 2022
Spring I/O 2022 - Barcelona, 26-27 May You’re a Spring developer with an interest for application architecture, curious how to express architectural ideas in your code base and how the Spring Boot ecosystem can support you implementing that? This talk is for you! The architecture and design of an application significantly influences its maintainability, testability, and quality in general. Spring has always been a versatile tool to support architects implementing practices and patterns that have emerged to align technical building blocks in their code bases with domain concepts and boundaries. It allows developers to ultimately build applications that distinctly reflect architectural ideas and thus are more amendable and maintainable eventually. Key aspects of that are code organization for encapsulation, the Spring bean relationship arrangement and how to use domain events to decouple logically individual parts of the application even within a singular artifact. The talk discusses those patterns and approaches to introduce libraries like jMolecules and Moduliths to in turn show how they uniquely position Spring developers to build better structured, more maintainable applications.
Watch
Harnessing Amazon’s DynamoDB with Spring by Iuliana Cosmina @ Spring I/O 2022
Spring I/O 2022 - Barcelona, 26-27 May At Cloudsoft, we started to build a project on our familiar tech stack, but to overcome some known issues with the stack we decided to migrate it to Spring. The new tech stack is made of mostly AWS services and the project is designed to improve certain aspects of the experience for our customers using AWS services. I can’t tell you as much detail as I’d like about it as it’s currently in Alpha status and due for public release later this year. The final product is going to be available to clients via subscription, and takes a novel approach to solving a known AWS challenge. Thus, I cannot elaborate on the nature of the service provided, but I can share with you the following details: - the architecture - the migration details and reasons behind it - the challenges - the conclusions and solutions The core of the migration was introducing Spring. The most difficult part was using Spring to interface DynamoDB, not because of Spring, but because of the AWS DynamoDB Java SDK and the very cumbersome way to write filter expressions for querying and scanning. The presentation shows the table design, a moderately complex repository method to extract some data and as a bonus, how to reuse Spring code from the main project in a Lambda Step function.
Watch
Hearts of Darkness: A Spring DevOps Apocalypse by Joris Kuipers @ Spring I/O 2022
Spring I/O 2022 - Barcelona, 26-27 May Slides: https://www.slideshare.net/jkuipers/hearts-of-darksess-a-spring-devops-apocalypse In this talk Joris will share several real-life failure cases concerning running Spring applications in production. Examples include services being killed because of health check issues, Micrometer metrics getting lost, circuit breakers never closing after opening, OOM errors caused by unbounded queues and other nightmarish scenario’s. Not only will you come to understand how these problems could sneak through staging to make their way to production, you will also be given practical tips on how to avoid these things from happening to your own applications. Otto von Bismarck famously said “Fools say that they learn by experience. I prefer to profit by others’ experience”. Don’t be a fool, and profit by attending this talk!
Watch
The harsh reality of Event Sourcing - mitigated with Spring and Axon on Tanzu Application Platform
Spring I/O 2022 - Barcelona, 26-27 May GitHub repo: https://github.com/dcaron/bike-rental-extended We build it, you wreck it! CQRS and Event Sourcing is powerful, but also hard. We’ll demonstrate the dark side of event sourcing in production. Before all hope seems lost, we’ll look at how we can leverage Spring Boot, Axon, and Tanzu Application Platform to circumvent these pitfalls. During this session, we will show some of Spring Boot’s features that help ensure a smoothly running, observable workload. We’ll deploy our application in a real production environment and declaratively connect our applications to the services we need. We’ll scale out using Knative and lastly, we’ll see how Spring Boot Autoconfiguration makes configuration of complex solutions easy and boring…. Beware! This session isn’t just theoretical. We love production. Really, we do. But it will be harmed during this session, and you will help us do it.
Watch
Testing with Spring and JUnit 5 by Sam Brannen - Spring I/O 2022
Spring I/O 2022 - Barcelona, 26-27 May Slides: https://www.slideshare.net/sbrannen/testing-with-junit-5-and-spring-spring-io-2022 This session will give you an overview of the latest and greatest in the world of testing using JUnit Jupiter (a.k.a. JUnit 5) and the Spring Framework. The focus will be major new features in JUnit Jupiter 5.8 and 5.9 as well as recent and upcoming enhancements to Spring’s integration testing support.
Watch
Our DataMesh Journey: data architectures for microservices by Carlos Saona-Vázquez - Spring I/O 2022
Spring I/O 2022 - Barcelona, 26-27 May What is the best data architecture in the age of microservices and “you-build-it-you-run-it” cross-functional, autonomous teams? How should different microservices share data between themselves to minimise coupling? How should microservices share data with offline data consumers such as BI, CRM, or ML training pipelines to minimise dependencies with the microservice teams? How can we reconcile data quality, trustworthiness and single-source-of-truth with autonomous teams releasing multiple times per day? Is this doable without a centralized data governance team? Are centralized data governance teams as proposed by data lake architectures compatible with autonomous teams and continuous delivery? Data meshes have been proposed as a new data architecture paradigm to answer the questions above, but there are very few public reports on actual implementations and their challenges. We will share the data mesh journey that we started 2 years ago in eDreams, one of the largest online travel agencies in the world. We will focus on three topics: motivation, technical solution and transformational approach. First, we explain why we think data meshes are a better fit for microservice architectures run by cross-functional, autonomous development teams. Second, we show the architecture of our current implementation, including how the mesh is connected to the online platform, the technologies we used, and the outcomes and rationales for each of the multiple trade-offs we made. They include decentralized team autonomy, data ownership, quality and accountability, PCI and strict (European) privacy regulations, self-service data access and reporting, infrastructure cost and budgeting. Third, we share the organizational challenges we faced when replacing the multiple data systems that were working well at the local level. Finally, we will conclude with our current list of open issues and future work.
Watch
Java meets TypeScript: building modern web apps with full-stack type safety by Manolo Carrasco
Spring I/O 2022 - Barcelona, 26-27 May As Java developers, we know the benefits of type-safety when building apps. The problem? Usually, that type-safety ends when we leave the server. What if it didn’t have to? In this presentation, you’ll learn how to build a modern, reactive, web app in TypeScript with view-to-database type safety using the open-source Hilla framework. The app uses a Spring Boot backend and connects type-safely to a Lit-frontend.
Watch
Let's build components, not layers by Tom Hombergs @ Spring I/O 2022
Spring I/O 2022 - Barcelona, 26-27 May Slides: https://speakerdeck.com/thombergs/lets-build-components-not-layers Code is written once and read often. So we should focus on making it easily readable. We all know that. The same is true for the architecture of an application. It’s usually created once and then read and re-read, understood and misunderstood, interpreted and misinterpreted a lot of times by a lot of people during its lifetime. We try to get a grip on this problem by using architectural patterns like layers. While layers are a well-understood structure, they only help in understanding the big picture of the application’s architecture. They usually don’t do a good job of organizing the code into pieces that are easy to understand and reason about. Usually, a better approach to structure the code is to build components. Like lego bricks, we can compose multiple (vertical and horizontal) components to a bigger component, until we have built a complete application. We can zoom in and out of the codebase along the seams of the components to understand what we need to understand at the level of abstraction that we are currently concerned with. In this talk, we’ll explore a lightweight way of structuring the codebase of a Spring Boot application that will feel like building lego. This component-based structure is easy to understand and reason about. It’s also easy to maintain over time thanks to a single rule that can be enforced by tooling. Java, Spring Boot, and ArchUnit bring all the tools we need for a nice component-based codebase, we just need to use them. ================================================ Video Chapters 00:00:00 Introduction 00:04:50 About the speaker 00:05:50 Why organise code? 00:08:47 What's wrong with layers? 00:12:09 What's wrong with vertical slices? 00:14:36 Clean / Hexagonal architecture 00:21:38 Component-based architecture 00:30:58 Field Study - Building a check engine component 00:43:44 Why build components? 00:47:03 Thank you
Watch
Beyond REST API’s – An overview about modern API technologies by Lars Duelfer @ Spring I/O 2022
Spring I/O 2022 - Barcelona, 26-27 May Slides: https://speakerdeck.com/larsduelfer/beyond-rest-an-overview-about-modern-api-technologies GitHub repo: https://github.com/NovatecConsulting/YATT REST is the most popular web API technology used these days. It is well supported by programming languages, frameworks and all kind of monitoring tools as well as understood by many developers. It is therefore often the first choice when having to implement a web API for any kind of backend. But there are limitations and use cases where REST API’s do not fit that well. Luckily, there are a few interesting alternatives available these days. GraphQL is one such alternative so are gRPC and RSocket. In this talk I will introduce these technologies, explain their pros and cons compared to REST, talk about their maturity and how they are supported by Spring and Spring Boot. I will show code examples and a live demo.
Watch