🚀 Features and Backend Architecture
Virtual Threads (Loom)
Delegation of heavy I/O work to a native Java 21
TaskExecutorAdapter, freeing the HTTP connection instantly (202 Accepted).JDBC Bulk Inserts
Synergy between Spring Batch (
chunk(500)), Hibernate (allocationSize=500) and the PostgreSQL driver for mass insertions.Multi-layer Defense (WAF)
@Transactional isolation and simulated WAF against SQL injection. Use of AtomicBoolean to block concurrency attacks (TOCTOU).Fault-Tolerant Resilience
Skip policies (
SkipPolicy). Corrupt or empty records are isolated and silently discarded without aborting the entire batch.Secure Infrastructure
Multi-stage deployment on Alpine Linux, operating under a
spring user (no-root) and data persistence via volumes.🛠️ Tech Stack
💻 Development Commands
The API exposes its services on port8081 and requires PostgreSQL on port 5435.
📡 API Documentation (Endpoints)
The API operates under the base route/api/v1/etl. Failed responses return a standard structure {"error": "Reason for failure"}.