ALL_SERIES
SERIES_OVERVIEW // CURRICULUM_MAP

Learn Java Data Access Pattern In Action

// Mental model data access Java production-grade: state, query boundary, mutation boundary, transaction boundary, consistency, mapping, and failure model.

60 Lessons878 Min Total04 Phases

This overview is designed to help you choose the right entry point quickly. Follow the full track from lesson one, continue from your last checkpoint, or jump straight into a phase that matches what you need right now.

active-recordaggregateanomalyanti-patternapi-design+180 more

Curriculum Map

Navigate by phase, then choose the lesson that matches your current depth.

01

Data Access Mental Model

17 min

Mental model data access Java production-grade: state, query boundary, mutation boundary, transaction boundary, consistency, mapping, and failure model.

02

Data Access Layer Responsibility

16 min

Responsibility map untuk DAO, Repository, Gateway, Unit of Work, Query Service, Transaction Script, dan boundary data access Java production-grade.

03

Relational Access From Java

15 min

Memahami bagaimana Java benar-benar berinteraksi dengan database relasional melalui JDBC primitive: DataSource, Connection, Statement, PreparedStatement, ResultSet, transaksi, mapping, dan failure boundary.

04

Anti-Patterns That Destroy Data Layers

21 min

Membongkar anti-pattern yang sering menghancurkan data access layer Java: repository bocor, entity bocor, N+1, transaksi kabur, generic repository, SQL tidak ter-review, error swallowing, dan testing palsu.

05

SQL-First vs Object-First vs Domain-First

13 min

Membandingkan pendekatan SQL-first, object-first, dan domain-first dalam data access Java, termasuk trade-off, failure mode, dan cara memilih pendekatan yang tepat untuk sistem production-grade.

06

Data Access Decision Framework

15 min

Framework keputusan untuk memilih JDBC, JPA, Hibernate, MyBatis, jOOQ, R2DBC, stored procedure, read model, atau kombinasi pattern data access Java secara production-grade.

07

Data Access Architecture Map

19 min

Peta arsitektur data access Java untuk monolith, modular monolith, microservice, batch worker, dan API backend, dengan fokus pada boundary, ownership, query shape, transaction scope, dan evolusi sistem.

08

Production-Grade Data Access Invariants

18 min

Invariant production-grade untuk data access Java: correctness, idempotency, transaction boundary, query stability, timeout, resource lifecycle, observability, testing, dan migration safety.

09

JDBC Core API

15 min

Deep dive JDBC core API sebagai primitive dasar data access Java: DriverManager, DataSource, Connection, Statement, PreparedStatement, CallableStatement, ResultSet, metadata, transaction, lifecycle, dan architecture boundary.

10

PreparedStatement and Parameter Binding

18 min

PreparedStatement dan parameter binding secara production-grade: SQL injection prevention, placeholder semantics, type binding, dynamic SQL, generated keys, batch execution, query naming, plan reuse, dan failure modes.

11

ResultSet Mapping Patterns

16 min

Pola mapping ResultSet ke DTO, row object, domain object, dan aggregate secara aman: nullability, type conversion, one-to-many mapping, projection, mapper contract, error handling, dan testing.

12

JDBC Transaction Control

18 min

Kontrol transaksi JDBC secara mendalam: auto-commit, commit, rollback, savepoint, isolation, transaction boundary, failure path, retry boundary, idempotency, connection lifecycle, dan production-grade transaction template.

13

JDBC Error Handling

20 min

Error handling JDBC secara production-grade: SQLException, SQLState, vendor code, transient vs non-transient error, constraint violation, deadlock, timeout, connection failure, retry policy, idempotency, dan semantic exception mapping.

14

JDBC Resource Lifecycle

20 min

Lifecycle resource JDBC secara production-grade: Connection, PreparedStatement, ResultSet, try-with-resources, pooled connection state, leak pattern, cancellation, timeout, streaming, transaction cleanup, and operational diagnostics.

15

JDBC Batch and Bulk Write

18 min

Batch dan bulk write JDBC secara production-grade: addBatch, executeBatch, chunking, transaction sizing, generated keys, partial failure, BatchUpdateException, idempotency, upsert, staging table, lock pressure, dan observability.

16

JDBC Streaming Large Result

21 min

Streaming large result JDBC secara production-grade: ResultSet cursor, fetch size, driver behavior, transaction scope, memory safety, callback vs Stream, chunking, export, cancellation, timeout, backpressure illusion, dan operational playbook.

17

Transaction Boundary Design

17 min

Desain transaction boundary pada Java application: service layer, use case, command handler, repository, async boundary, outbox, audit, retry, idempotency, dan consistency boundary secara production-grade.

18

Isolation Level In Practice

19 min

Isolation level dalam praktik Java data access: read committed, repeatable read, serializable, dirty read, non-repeatable read, phantom, lost update, write skew, predicate anomaly, retry, locking, dan invariant design.

19

Locking Patterns

16 min

Pola locking dalam Java data access: optimistic lock, pessimistic lock, SELECT FOR UPDATE, advisory lock, application lock, lease lock, deadlock prevention, lock timeout, SKIP LOCKED, dan kapan lock lebih tepat daripada constraint atau state machine.

20

Idempotent Write Pattern

20 min

Idempotent write pattern untuk Java data access: idempotency key, command ID, unique constraint, dedup table, replay-safe result, request retry, message redelivery, outbox/inbox dedup, exactly-once illusion, dan production-grade implementation.

21

Concurrency Anomaly Lab

12 min

Lab anomaly concurrency untuk Java data access: double spending, duplicate approval, stale state transition, concurrent assignment, lost update, phantom, write skew, test dua connection, barrier/latch, dan cara membuktikan fix dengan constraint, version, lock, dan serializable.

22

Transaction Retry Pattern

14 min

Transaction retry pattern untuk Java data access: deadlock, serialization failure, transient connection issue, retry budget, exponential backoff, jitter, deadline, idempotency, whole-transaction retry, outbox, side-effect safety, dan observability.

23

Long-Running Transaction Avoidance

12 min

Menghindari long-running transaction dalam Java data access: split phase, status machine, reservation, compensation, durable progress, async workflow, file/external service boundary, batch checkpoint, dan failure recovery.

24

Consistency Without Distributed Transaction

15 min

Mendesain consistency tanpa distributed transaction: local transaction, transactional outbox, inbox/idempotent consumer, saga boundary, compensation, eventual consistency, exactly-once illusion, read model lag, reconciliation, dan Java implementation patterns.

25

DAO Pattern Done Right

13 min

DAO pattern modern yang benar dalam Java data access: contract, SQL ownership, mapping, transaction participation, error translation, query naming, batching, testing seam, dan anti-pattern DAO generik.

26

Repository Pattern Done Right

13 min

Repository pattern modern dalam Java: aggregate boundary, collection illusion, mutation semantics, persistence ignorance, DAO composition, transaction boundary, optimistic locking, query limitation, testing, dan anti-pattern generic repository.

27

Query Object and Specification Pattern

13 min

Query Object dan Specification Pattern dalam Java data access: filter object, sorting, pagination, keyset cursor, composable predicate, criteria, dynamic SQL, query ownership, validation, tenant scope, dan testing.

28

Command Query Separation in Data Access

12 min

Command Query Separation dalam Java data access: memisahkan write repository dan read/query service, pragmatis tanpa overengineering CQRS, DTO projection, read model, transaction boundary, consistency lag, dan testing.

29

DTO Projection and Read Model

14 min

DTO projection dan read model dalam Java data access: view model, reporting query, list screen optimization, avoiding entity leak, direct projection, constructor mapping, database view, denormalization, projection lag, rebuild, dan testing.

30

Data Mapper vs Active Record

15 min

Data Mapper vs Active Record dalam Java enterprise: persistence model, domain separation, ORM, transaction boundary, testing, complexity trade-offs, why Java often prefers Data Mapper, and when Active Record is acceptable.

31

Unit of Work, Identity Map, Lazy Loading

16 min

Unit of Work, identity map, dirty checking, lazy loading, flush boundary, persistence context, entity state, N+1, detached entity, dan production failure modes pada Java data access.

32

Data Access Contract Design

12 min

Desain kontrak method data access Java: naming, return type, nullability, Optional, collection, stream, pagination, cursor, update count, error semantics, transaction expectation, locking, idempotency, dan API review rubric.

33

JPA Entity Modeling for Data Access

14 min

Entity modeling JPA untuk data access production: identity, lifecycle, association, embeddable, value object, aggregate boundary, table mapping, versioning, audit, invariants, dan anti-pattern entity design.