Back to projects
Aug 18, 2024
2 min read

Live Score — Reactive Spring Boot

A real-time football score application built with Spring WebFlux and Vaadin's Hilla, demonstrating reactive programming patterns with non-blocking data streams from an external API.
JavaJava
Spring BootSpring Boot
WebFluxWebFlux
ReactiveReactive
VaadinVaadin
HillaHilla
TailwindCSSTailwindCSS
Live Score — Reactive Spring Boot banner

A real-time sports score application that showcases the power of Spring Boot’s reactive capabilities. Live Score delivers football scores using non-blocking, event-driven architecture — from the external API all the way to the browser.

This project is a hands-on exploration of reactive programming with Spring Boot, focusing on the technical patterns rather than being a production app.

How It Works

  1. Data Fetching — Periodically fetches live score data from API-FOOTBALL (RapidAPI) using WebClient, a non-blocking HTTP client
  2. Reactive Processing — Incoming data is processed using Flux and Mono operators with backpressure support
  3. Real-Time UI — The React frontend built with Hilla consumes the reactive API and updates scores in real time

Key Concepts Demonstrated

  • Spring WebFlux — Reactive web framework as an alternative to Spring MVC
  • Project Reactor — Mono (0..1 elements) and Flux (0..N elements) reactive types
  • Non-blocking I/O — Efficient resource usage under high concurrency
  • Reactive Streams — Asynchronous stream processing with backpressure

Tech Stack

  • Spring Boot 3 — Application framework
  • Spring WebFlux — Reactive web layer
  • Project Reactor — Reactive streams implementation
  • Vaadin Hilla — Full-stack framework (React + TypeScript frontend)
  • TailwindCSS — Styling
  • API-FOOTBALL (RapidAPI) — External data source
  • Java 21 — Latest LTS
  • Maven — Build tool

Screenshots

Live Score — Reactive Spring Boot screenshot 1
Live Score — Reactive Spring Boot screenshot 2