Posts

Showing posts from August, 2025

Mastering Reactive Programming with Project Reactor in Java

  1. Introduction Reactive Programming is an asynchronous programming paradigm focused on handling data streams and event-driven applications. It enables non-blocking execution, efficient resource utilization, and responsiveness, making it ideal for modern applications that require scalability and real-time processing. Java provides the java.util.concurrent package for handling concurrency, but it lacks a standard for asynchronous, event-driven programming. To address this, the Reactive Streams Specification was introduced, and libraries like Project Reactor were built on top of it to enable reactive programming. 2. Reactive Streams Specification The Reactive Streams Specification defines a standard for asynchronous stream processing with backpressure. It consists of four key interfaces: Publisher : Emits a stream of data to its subscribers. Subscriber : Receives data and handles it accordingly. Subscription : Manages the lifecycle between the publisher and subscriber. Processor...

Enhancing a Banking Platform: By Using BFF + DDD + Hexagonal + CQRS to a Modern, Resilient Architecture

  This article proposes concrete upgrades to improve scalability, resilience, security, developer velocity, and compliance—tailored for banking workloads. 1) Clarify and Strengthen Each Layer’s Responsibility BFF (per-channel): Keep request/response models channel-specific; avoid leaking domain objects. Consider GraphQL at the BFF or an Aggregation/Composition layer for flexible, low‑chattiness mobile experiences. Add schema validation (JSON Schema/Avro), rate limits , and adaptive throttling per channel and client. Domain Services (DDD + Hexagonal): Enforce Ports & Adapters strictly: inbound (HTTP/Events) and outbound (repositories, external services) are adapter-only. Promote aggregates with clear invariants and domain events as first‑class citizens. Align bounded contexts with business capabilities (Payments, Accounts, Onboarding, Cards, UPI, Loans, KYC). Proxy Layer → Anti‑Corruption Layer (ACL): Rename to ACL to emphasize translation, normalization, and idempotency...