List of videos

Vector Similarity Search in Spring with Redis Stack by Brian Sam-Bodden @ Spring I/O 2023

Spring I/O 2023 - Barcelona, 18-19 May Slides: https://2023.springio.net/docs/slides/vector-similarity-search-in-spring-with-redis-stack-springio23.pdf Vector Similarity Search (VSS) search allows developers to retrieve information based on audio, natural language, images, video clips, voice recordings, and many more data types. Searching over unstructured data makes VSS a foundational technology for building advanced similarity search experiences. With advances in AI, data scientists can build models that can transform almost any data “entity” into its vector representation. An entity here could be a transaction, a user profile, an image, a sound, a long piece of text (sentence or paragraph), a time series, or a graph. Any of these can be turned into its “feature vector,” also known as “embedding.” AI/ML practitioners are familiar with generating “dense” feature representations (a.k.a embeddings) for their data entities. They can now store these feature vectors in Redis and perform similarity searches. From a visual search on an e-commerce website to automated chatbots / Q&A systems and multiple types of recommendation systems. VSS is generally helpful on any app where spotting similarity in real-time is essential to unlocking value. Common applications are E-commerce recommendations, Semantic similarity, Similarity in user profiles or products, Similarity in time-series data, graph data, and transactions. In this talk, we’ll learn how to implement VSS in Spring applications using Redis Stack enhanced search capabilities. We’ll learn about creating embeddings for your data, learn about Vector databases, Vectorization of your data, similarity metrics, and more.

Watch
From k9s to OpenTelemetry:A guide to observability for your Spring apps in K8s by Matthias Haeussler

Spring I/O 2023 - Barcelona, 18-19 May Slides: https://speakerdeck.com/maeddes/whats-going-on-in-my-cluster One of the biggest challenges in the context of observing Spring Boot apps in Kubernetes is to find the right technology for the desired level of introspection. This talk will give an overview of what is currently available, what it gives you and which overhead you need to expect. Spring Boot is designed to be particularly developer friendly and intuitive, understanding Kubernetes however can be hard. Not only in the initial learning and understanding of the concepts, but also the aspect of keeping an overview of what is happening inside at the workloads of the cluster can be challenging. How can you quickly and easily tell if your apps are healthy, well utilised and running fine? This talk intends to look at the various aspects of Kubernetes observability and to introduce and compares multiple Open Source tools to achieve that. The range of tools covers different observability levels and requirements of different user groups. It starts with tools simply querying the Kubernetes API and delivering the outputs in an easy-to-understand UI, goes over the possibilities of services meshes and ends with application-side logging and monitoring. For each level of observability the user has to pay a certain price in terms of configuration and runtime overhead. In turn the quality and depth of the information is different. The Spring ecosystem provides the Spring Cloud Kubernetes extension. This talk will also highlight how this improves the Kubernetes experience and how it integrates with other solutions. The intended take-away is to get a feeling which type of tooling is the right one for a given purpose. Most options will be shown in a live demonstration. Some of the technologies have a polyglot aspect and can be applied independent of the framework. This talk however has a dominant focus on Spring Boot applications.

Watch
Bootiful workload orchestration with Hashicorp Nomad by Martin Ahrer @ Spring I/O 2023

Spring I/O 2023 - Barcelona, 18-19 May Slides: https://speakerdeck.com/martinahrer/bootiful-workload-orchestration-with-hashicorp-nomad GitHub repo: https://github.com/MartinAhrer/continuousdelivery What if we had a workload orchestrator that allows to run (legacy) Java applications, container and native workload without having to convert everything into a container? K8s has become standard for running container workload. It is popular for its flexibility, power and wide industry support but it comes with some costs. This is where Hashicorp Nomad steps in as an alternative when you don’t want to containerize your existing applications. In this talk attendees get a short intro to Nomad and learn to schedule Java, container, GraalVM native Spring Boot workloads running side by side.

Watch
Hidden gems and traps that you probably didn't think of using Event Sourcing by David Gomez

Spring I/O 2023 - Barcelona, 18-19 May Have you heard of Event-Sourcing pattern? In these days of scalable, distributed applications, we will introduce a few practical considerations on Why, when and how to use Event-Sourcing. Some traps and benefits and how to easily do Event-Sourcing right with SpringBoot and AxonFramework. Very likely you would have heard many related concepts about Event-Driven Architectures so popular these days. In this session we will to focus on Event-Sourcing: and we will put it in its context and compare it with other event-based communication mechanisms. Specifically, we will answer three very specific questions: - The what: What exactly is Event-Sourcing? And how does it differ from other techniques related to Event-Driven Architectures? - The Why: what does Event Sourcing bring you in your case? - The how: What should you take into account and how should you implement Event-Sourcing to get the most out of its benefits? But we will also mention things to keep in mind if you want to avoid some uncomfortable pains and problems. We will finish by showing three practical examples where applied Event-Sourcing provides us with real benefits.

Watch
Observing Spring for GraphQL in Action by Brian Clozel & Rossen Stoyanchev @ Spring I/O 2023

Spring I/O 2023 - Barcelona, 18-19 May Slides: https://github.com/bclozel/graphql-music/blob/main/observing-spring-for-graphql-in-action.pdf GitHub repo: https://github.com/bclozel/graphql-music On the heels of its first 1.0 release last May, six short months later Spring for GraphQL released 1.1 bringing it up to a Spring Framework 6 and Boot 3 baseline on Java 17+ with AOT/Native support, built-in Micrometer observability, Micrometer Context Propagation, improved argument binding, and much more lined up for the 1.2 release in May 2023. In this talk, Rossen and Brian will use a sample application to demo new features as well as to illustrate how GraphQL requests are handled through the built-in, Micrometer observability support in order to get insight into GraphQL request processing by visualizing data fetching operations. The sample uses a CLI application to consume GraphQL data through the Spring for GraphQL client. This talk is not intended as a comprehensive intro to GraphQL, but it is intended to allow developers without hands-on experience with GraphQL to understand more about GraphQL applications.

Watch
REST next level: Crafting domain-driven web APIs by Julien Topçu @ Spring I/O 2023

Spring I/O 2023 - Barcelona, 18-19 May Slides: https://slides.com/julientopcu/rest-next-level-crafting-business-oriented-web-apis GitHub repo: https://gitlab.com/crafts-records/columbiad-express You have just coded your business logic by applying the principles of Domain-Driven Design! But when comes the time to write your API, you are facing a serious issue! All the intention and the expression of your domain go up in smoke to fit the blankness methods GET, POST, etc. Denatured by the REST layer, the business workflow is then deported on the consumer side to compensate for the limited vocabulary of this well-known CRUD protocol… During this talk, we will see how to bring the business intent back inside the REST API by finally being able to expose our domain services and aggregates’ methods. The business workflow will also be encapsulated in the REST API in order to have the power to guide our consumers through the workflow of our domain.

Watch
Spring Boot in a Polyglot Cloud-Native World with Dapr by Mauricio Salatino @ Spring I/O 2023

Spring I/O 2023 - Barcelona, 18-19 May Slides: https://speakerdeck.com/salaboy/o-2023-spring-boot-in-a-cloud-native-polyglot-world GitHub repo: https://github.com/salaboy/dapr-testcontainers Forget about adding libraries to connect with your database or message brokers. Dapr provides a set of Cloud-Native interfaces and components that allow developers to focus on coding their features instead of worrying about the infrastructure that is needed to run their applications. Have you ever realized that the database driver version used in your production environment differs from the one you use for development? Have you ever suffered the pain of another team using a different programming language that doesn’t allow you to expose metrics in the same way that you do in your spring boot applications? In this session, we will be looking at Dapr, a Cloud Native set of interfaces that enable developers to build distributed applications quickly, no matter the programming language that they are using. By using Dapr and its provided interfaces, you decouple the infrastructure your applications need to run from their implementations, enabling developers to quickly iterate and build features without worrying about language-specific drivers or libraries that need to be included and maintained inside their applications. This session will focus on the Dapr Spring Boot integrations and show how developers can quickly get started by showing a live demo (running on Kubernetes) that uses a wide range of Dapr Components.

Watch
Progressive Delivery in the Kubernetes era by Alex Soto @ Spring I/O 2023

Spring I/O 2023 - Barcelona, 18-19 May Slides: https://docs.google.com/presentation/d/1SwBPSuBH9MTYiJCLNKFmCDK8NJ3E4sbVVwrtpNt1QFY/edit Production is the place where all applications should live. Even though you are using continuous integration and delivery, you might wonder every time you release a new version to production if it will work or there will be some breakage on the latest version, eventually making production unavailable to the customers. Progressive delivery is the next step after Continuous Delivery to test your application in production before it becomes fully available to all your user bases. Embrace progressive delivery with techniques like the blue-green, canary release, shadowing traffic, or dark launches to validate the application in production using Kubernetes and tools like Istio, Prometheus, ArgoCD, or Argo Rollouts. Come to this session to learn progressive delivery in action using Kubernetes.

Watch
Things I Wish I Knew When I Started Testing Spring Boot Applications by Philip Riecks @ Spring I/O

Spring I/O 2023 - Barcelona, 18-19 May Getting started with Spring Boot and its auto-configuration mechanism can be a hurdle for new developers. Once you get your first Spring Boot application up- and running, writing tests for it is the last thing you care about. You’re happy that your code does its job. However, as soon as you try to integrate your changes, you face a pull request rejection because your lead developer reminds you that tests are missing. Testing is an integral part of software development, and unfortunately, some teams treat this topic neglectfully. That’s bad for the future maintenance and overall health of their project. Fortunately, both Spring Test and Spring Boot offer excellent support for testing your application. This talk will give you an overview of best practices, pitfalls, and recipes for testing Spring Boot applications. Simply put, with this talk, I’ll share the things that I wish I had known when I started testing Spring Boot applications.

Watch