Welcome to the Reactive Programming Masterclass. This repository contains a series of hands-on laboratories designed to master asynchronous stream processing, non-blocking I/O, and reactive systems design.
The transition to Reactive Programming requires a significant mindset shift. We approach this in progressive levels using Java 21 and Project Reactor:
- The Mindset: Foundational concepts and analogies to understand "Push" vs "Pull" in the JVM.
- The Core: Mastering the Reactive Streams Specification, Backpressure, and Schedulers.
- The Enterprise: Building microservices using Spring WebFlux and R2DBC.
- The Scale: We introduce Kafka, Observability, and advanced Resilience patterns.
- The Horizon: We compare Reactive with Virtual Threads (Project Loom) to understand the modern Java landscape.
For a detailed breakdown of all modules, learning objectives, and the certification path, see the Full Syllabus.
- Level 1: The Reactive Mindset & Foundations (Project Reactor Foundations)
- Level 2: The JVM Reactive Core (Project Reactor, Backpressure, Threading)
- Level 3: Enterprise Reactive Services (Spring WebFlux, R2DBC, Security)
- Level 4: Resilient & Event-Driven Systems (Kafka, Micrometer, Resilience4j)
- Level 5: The New Frontier & Extras (Virtual Threads vs Reactive, Quarkus Mutiny)
Note: The curriculum includes progressive mini-projects and a final Capstone Project to consolidate knowledge.
To successfully run these laboratories, you need the following environment:
- Java 21 (LTS): Required for Project Reactor, Spring WebFlux, and Virtual Threads.
- Maven 3.9+: For managing Java projects.
- Docker & Docker Compose: Essential for containerized infrastructure (Kafka, Databases).
- Make: (Optional but recommended) For using the centralized command shortcuts.
Each folder in labs/ is an independent module. Follow the instructions in the README.md of each lab.
We provide a multi-module Maven structure. You can run commands from the root for all labs or focus on a specific one:
# Compile and install all labs
mvn clean install
# Run tests for a specific lab
mvn test -pl labs/006-reactive-streams
# Run tests for all labs
mvn testWe also provide a Makefile at the root as a shortcut for common tasks:
The laboratory uses specialized Agent Workflows to automate quality gates and implementation phases. These are invoked via / commands:
/lab-master-plan: Covers the entire design phase (Init + Architect). Use this to generatespec.md,plan.md, andtasks.md./lab-master-build: Covers the entire execution phase (Builder + Auditor). Use this to generate the code, tests, and documentation once the plan is approved./lab-refiner: Retrospectively audits and upgrades an already delivered laboratory to ensure compliance with the latest standards.
/lab-init: Initiates a new lab and generates DRAFT artifacts./lab-architect: Refines and validates planning (READY status)./lab-builder: Executes the technical implementation./lab-auditor: Performs the final pedagogical gap audit (AUDITED status).
The laboratory follows a strict set of engineering and pedagogical standards defined in the Constitution.
Maintained by: MeloStudy Version: 0.2.0