Bytz Echo Blog
Engineering notes for backend developers
Practical Java, Spring Boot, Kafka, PostgreSQL, performance, and production debugging articles written for engineers who ship real systems.
Featured latest
-

PostgreSQL Used the Index. It Still Processed Millions of Rows.
A PostgreSQL index scan still processed 8.7 million rows because a materialized CTE applied selective filters after an expensive join in production.
Trending engineering reads
Explore core topics
Spring Boot
APIs, jobs, WebClient, architecture, and production-ready backend patterns.
Performance Engineering
Latency, load tests, Redis, database bottlenecks, and real benchmark notes.
Engineering Insights
Architecture trade-offs, delivery lessons, and technical decision-making.
Latest articles
-

Our Server Was Healthy. The Connection Pool Was Exhausted.
Spring Boot stayed healthy while Glass Fish exhausted its Oracle connection pool, delaying searches before SQL execution and causing timeouts.
-

The Database Was Fast. Our Spring Boot API Still Ran Out of Memory.
A fast SQL query loaded 100,000 Hibernate entities, exhausted the JVM heap, and exposed why previews and full reports need different retrieval boundaries.
-

Quartz Succeeded, but the Report Was Still Wrong
A hidden server timezone shifted a Spring Boot Quartz job by seven hours, causing the report to query the wrong business-day transaction window.
-

Why Our Spring Boot Health Check Lied During an Outage
A Spring Boot outage showed how green readiness probes hid Tomcat thread exhaustion, slow dependencies, and broken timeout design.
-

Kafka Lag Looked Fine. One Partition Was Not.
Learn how partition-level Kafka lag, slow consumer paths, hot keys, and worker handoffs reveal delays that total lag dashboards can hide from teams.
-

PostgreSQL Was Not Slow. Our Index Was Useless.
Learn why a PostgreSQL index can still be useless and how composite indexes, EXPLAIN ANALYZE, and query patterns improve reporting speed.
-

Postman Timed Out, but Kafka Was Still Receiving Jobs
Postman timed out while Spring Boot kept sending Kafka jobs. See how SSE progress, idempotency, and async boundaries fixed it.
-

Spring Boot Did Not Leak Memory. Redis Had No Exit
Redis memory kept growing in Spring Boot because cache keys had no TTL, maxmemory, eviction policy, or namespace-level monitoring.
-

When Files.move() Deleted the Wrong Java File
A production-style Java file handling lesson about Files.move(), reused filenames, race conditions, and safer file lifecycle design.