UmurInan
Tutorials Tutorials

Practical Tutorials

Hands-on walkthroughs with real code: JPA locking, transactional outbox, N+1 problem, and more.

Category:
Difficulty:
Backend

Posted on May 19, 2026 advanced

Spring Data Derived Queries: Crossing Boundaries

Nested traversal in Spring Data derived queries: the underscore rule, the distinct-join trap, the same-collection trap, projections, EntityGraph, streams.

Read more
Backend

Posted on May 19, 2026 advanced

Spring Data Derived Queries: The Single-Entity Toolkit

Spring Data writes JPQL from your method names. The full single-entity keyword set: equality, comparison, string ops, null, In, OrderBy, Top, Pageable, countBy.

Read more
Backend

Posted on May 16, 2026 advanced

HikariCP in Production: Tuning, Monitoring, and pgbouncer

Tune HikariCP for production Spring Boot 4 services on Postgres. Little's Law sizing, the properties that matter, monitoring signals, pgbouncer fronting.

Read more
Database

Posted on May 9, 2026 intermediate

PostgreSQL JSONB Deep Dive: Operators, Indexes, and the Tradeoffs Nobody Told You About

JSONB operators, GIN vs expression indexes, and the cost of JSONB over typed columns - all proved with EXPLAIN ANALYZE on 200k Postgres rows. Tests in the repo.

Read more
Database

Posted on Apr 25, 2026 intermediate

Database Indexes Explained: A PostgreSQL Walkthrough With EXPLAIN ANALYZE

B-tree, composite, partial indexes proved with EXPLAIN ANALYZE on 500k Postgres rows. Plus the three ways EXPLAIN ANALYZE lies to you. Tests in the repo.

Read more
Backend

Posted on Apr 12, 2026 intermediate

@Transactional Demystified: Every Attribute With Working Tests

Every @Transactional attribute explained with real working code: propagation, rollbackFor, readOnly, timeout, and isolation, each proved by a failing test.

Read more
Database

Posted on Apr 10, 2026 intermediate

Optimistic vs Pessimistic Locking in JPA

Two JPA strategies for preventing the lost update problem. @Version for optimistic locking, SELECT FOR UPDATE for pessimistic. Real SQL output, working tests.

Read more
Backend

Posted on Apr 8, 2026 intermediate

The Transactional Outbox Pattern in Spring Boot

Build the transactional outbox pattern in Spring Boot with Kafka: atomic writes, a polling relay, and full integration tests with Testcontainers, all working.

Read more
Database

Posted on Apr 7, 2026 intermediate

The N+1 Problem: All Four Fetch Strategies Explained

A hands-on walkthrough of all four Hibernate fetch strategies with real query counts. Each fix is verified by a test that proves the N+1 problem first.

Read more