Final module / Evidence map

Interview Map

Every senior-backend claim in the course points to a concrete repo artifact, test, ADR, transcript, or article.

N+1 queries

Cause the failure on purpose, then compare JOIN FETCH, EntityGraph, and DTO projection.

Lazy vs eager loading

Use LazyInitializationException as a visible boundary, not as a mysterious Hibernate tax.

  • HibernateMentalModelEducationalTest.lazyBoundaryIsVisibleAsLazyInitializationException
  • palabas-api/docs/transcripts/phase-2b-hibernate-sql-log.txt

Pagination traps

Do not fetch-join paged parent collections; prefer DTO projection or two-step IDs.

  • QueryPerformanceEducationalTest.paginationTrapIsNamedBeforeTheFixIsApplied
  • palabas-api/src/main/java/com/imdmp/palabas/persistence/repository/ShowtimeJpaRepository.java

Concurrency and no-overlap invariants

Put the invariant in the database and prove the strategy per vendor.

  • palabas-api/src/main/resources/db/migration/postgresql/V1__schema.sql
  • palabas-api/src/main/resources/db/migration/oracle/V1__schema.sql
  • palabas-api/docs/oracle-notes.md

Security filter chain

Use a real OAuth2 resource server filter chain and prove five request outcomes.

Optimistic locking

Add a version column and keep stale updates as an explicit concurrency story.

  • palabas-api/src/main/resources/db/migration/postgresql/V1__schema.sql
  • palabas-api/src/main/java/com/imdmp/palabas/persistence/entity/ShowtimeEntity.java

Observability

Debug from correlation ID, structured request log, cache hit/miss metric, and Prometheus output.

  • palabas-api/src/main/java/com/imdmp/palabas/api/CorrelationIdFilter.java
  • palabas-api/src/test/java/com/imdmp/palabas/observability/ShowtimeObservabilityTest.java
  • palabas-api/docs/transcripts/phase-6-failed-request-correlation.txt