Skip to content

shrihari7396/Reactive-Programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Reactive Programming Learning

Welcome to my Reactive Programming learning repository! πŸš€

This repository is dedicated to exploring and mastering the concepts of Reactive Programming within the Spring Boot ecosystem. It serves as a practical playground to understand non-blocking, asynchronous application development using Project Reactor.

πŸ“Œ Project Overview

This is a Maven-based Spring Boot project focused on Spring WebFlux. It demonstrates fundamental reactive types and how to handle data streams reactively.

Key Concepts Explored:

  • Project Reactor: The core library used for building reactive applications.
  • Mono: Represents a reactive sequence of 0 or 1 item.
  • Flux: (Upcoming/Explored) Represents a reactive sequence of 0 to N items.
  • Subscribers: Understanding the CoreSubscriber interface, including handling onSubscribe, onNext, onError, and onComplete lifecycle events.
  • Non-blocking I/O: The fundamental shift from traditional thread-per-request blocking models to asynchronous event-loop models.

πŸ› οΈ Technology Stack

  • Java: Java 17
  • Spring Boot: Version 3.5.6
  • Spring WebFlux: For building reactive web applications (spring-boot-starter-webflux).
  • Project Reactor: Core reactive library (reactor-test for testing reactive streams).
  • Lombok: To reduce boilerplate code.

πŸ“‚ Repository Structure

  • Reactive Programming Learning/src/main/java/springboot/lear/reactiveProgramming/: Contains the main Spring Boot application.
  • Reactive Programming Learning/src/test/java/springboot/lear/reactiveProgramming/: Contains JUnit tests that demonstrate the behavior of reactive streams (e.g., creating a Mono and attaching a custom CoreSubscriber).

πŸš€ How to Run & Test

  1. Clone the repository:
    git clone https://github.com/shrihari7396/reactive-Programming.git
  2. Navigate to the project directory:
    cd "reactive-Programming/Reactive Programming Learning"
  3. Run the application:
    mvn spring-boot:run
  4. Run the Tests: The best way to see reactive programming in action in this repository is to run the test cases provided in ReactiveProgrammingLearningApplicationTests.java.
    mvn test
    Watch the console output to see how the Mono emits data and how the subscriber reacts!

Embracing the reactive paradigm for highly scalable and resilient systems! 🌊

About

A Spring Boot WebFlux project demonstrating fundamental Reactive Programming concepts using Project Reactor (Mono/Flux).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages