Skip to content

gauravs19/scale-first-ingestion-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enterprise Scale-First IoT Ingestion (Java Edition)

A Reactive High-Throughput Ingestion Blueprint built with Spring Boot 3.2 and Project Reactor.

🏛️ Architectural Profile

This repository is the Java/Spring Boot twin of the scale-first-ingestion project. It demonstrates how to achieve extreme scale and resilience using a Reactive (Non-Blocking) stack.

Why Java for Ingestion?

While Python is excellent for rapid prototyping and AI, Java (via Netty/WebFlux) provides superior runtime performance and thread management for high-concurrency industrial gateways. This project benchmarks the "Reactive" approach against traditional thread-per-request models.


🛠️ Technical Stack

  • Framework: Spring Boot 3.2.2.
  • Runtime: Java 21 LTS (Optimized for virtual threads and performance).
  • Reactive Stream: Spring WebFlux & Project Reactor.
  • Brokerage: Redis Streams (Reactive Driver).
  • Observability: Micrometer + Prometheus + Spring Boot Actuator.
  • Containerization: Multi-stage Docker optimization.

🚀 Key Patterns Implemented

  1. Non-Blocking I/O: 100% reactive flow from REST entry point to Redis storage.
  2. Stream Receiver Pattern: Java-native implementation of consumer groups for high-volume telemetry processing.
  3. Governance & Validation: JSR-380 (Jakarta Bean Validation) for enterprise-grade schema enforcement.
  4. Operational Metrics: Real-time histograms for ingestion latency and throughput.

📂 Repository Structure

├── ingestor-service/    # Reactive Spring Boot API Gateway
├── processor-service/   # Reactive Stream Listener and Worker
├── config/              # Prometheus and operational configurations
└── docker-compose.yml   # Full distributed stack orchestration

🏁 Quick Start (Podman/Docker)

docker-compose up --build
  • API (Swagger): http://localhost:8081/actuator/health
  • Manual Ingest:
curl -X POST http://localhost:8081/ingest -H "Content-Type: application/json" -d '{"deviceId": "JAVA-DEV-001", "type": "VIBRATION", "reading": 15.5}'

Created by gauravs19

About

Reactive high-throughput IoT ingestion blueprint using Spring Boot 3.2 and Project Reactor — the Java/Spring twin of scale-first-ingestion.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors