Skip to content

Welcome—and thanks for being here. I'm a Staff Software Lead, with 15+ years in Java. For the last few years, I've lived in event-driven, distributed systems.

I build real-time platforms for financial infrastructure—streaming on Apache Kafka and Apache Flink, handling strict ordering, exactly-once processing, watermarking, and schema evolution with Avro.

I've built reconciliation pipelines for core banking, where a lost event isn't a bug—it's a financial discrepancy. I also led one platform's shift to a SaaS-ready, multi-tenant product, deployed globally.

I own the full lifecycle: Kafka topology, consumer lag, Flink state tuning, CI/CD for streaming jobs, plus the surrounding architecture—Cassandra, Oracle, Spring Boot.

Low-level design matters to me: clean class structures, solid interfaces. Systems fail at the seams, so I weigh trade-offs constantly—consistency vs. availability, throughput vs. latency.

I stay hands-on, shipping code and solving hard consistency problems, while also leading teams and mentoring engineers.

Check this out : Technical notes

Gopi Gorantala

Featured Posts

Flink Heartbeat of TaskManager Timed Out: Causes and Fixes

Fix the Flink 'Heartbeat of TaskManager with id ... timed out' error. Real causes — GC pauses, OOMKilled pods, network saturation — and the exact config fixes.

Kafka TimeoutException: Expiring N record(s) — Cause and Fix

Kafka producer failing with TimeoutException: Expiring N record(s): ms has passed since batch creation? What delivery.timeout.ms really does — and the fix.

Kafka InconsistentClusterIdException: Cluster ID Mismatch Fix

Fix kafka.common.InconsistentClusterIdException: Cluster ID doesn't match stored clusterId in meta.properties — the Docker volume cause and the real fix.

Recent Posts

Java ConcurrentModificationException: Causes and Fixes

ConcurrentModificationException usually has nothing to do with threads. Here is exactly what modCount does, why it fires, and the four fixes that actually work.

Kafka TransactionalIdAuthorizationException: Fix the ACL

TransactionalIdAuthorizationException: Transactional Id authorization failed. Why your EOS/Spring transactional producer dies on a secured cluster and the exact ACLs that fix it.

Kafka CorruptRecordException: Record Is Corrupt — Fix It

Kafka CorruptRecordException: Record is corrupt (stored crc != computed crc). Why the CRC check fails, how to recover the partition, and how to stop it recurring.

Kafka's UNKNOWN_PRODUCER_ID and OutOfOrderSequenceException: Why Your Idempotent Producer Fails After a Restart

A deep dive into why idempotent Kafka producers throw UNKNOWN_PRODUCER_ID and OutOfOrderSequenceException in production, how broker-side producer state expiry causes it, and how to fix it with KIP-360 semantics and proper client configuration.

HikariPool-1 - Connection is not available, request timed out after 30000ms: Diagnosing and Fixing Connection Pool Exhaustion in Spring Boot

A production-grade breakdown of the HikariCP Connection is not available timeout in Spring Boot — why it happens under load, how to reproduce it locally, and how to fix and prevent pool exhaustion for good.