Learn Java Microservices Design and Architect
// Membongkar miskonsepsi bahwa microservices adalah service kecil, lalu membangun mental model microservice sebagai unit perubahan, ownership, deployment, data authority, dan failure isolation.
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.
Curriculum Map
Navigate by phase, then choose the lesson that matches your current depth.
Why Microservices Are Not Small Services
21 minMembongkar miskonsepsi bahwa microservices adalah service kecil, lalu membangun mental model microservice sebagai unit perubahan, ownership, deployment, data authority, dan failure isolation.
Distributed System Reality Check
17 minReality check tentang konsekuensi distributed system dalam Java microservices: partial failure, latency, timeout, retry amplification, network partition, overload, dan cascading failure.
Architecture for Change, Not for Diagrams
21 minMembangun mental model bahwa arsitektur microservices bukan gambar kotak-panah, melainkan sistem constraint, trade-off, feedback loop, dan fitness function yang menjaga kemampuan sistem untuk berubah.
Service Boundary as Business Boundary
21 minMendesain service boundary sebagai boundary kapabilitas bisnis, ownership, lifecycle, policy, data authority, dan change frequency; bukan berdasarkan technical layer, tabel, atau CRUD entity.
Microservices vs Modular Monolith vs Distributed Monolith
22 minMemahami perbedaan nyata antara modular monolith, microservices, dan distributed monolith; kapan memilih masing-masing, bagaimana mengenali smell, dan bagaimana membuat keputusan arsitektur berbasis constraint.
Topology of Enterprise Microservices
22 minMemahami topology enterprise microservices sebagai graph capability, ownership, dependency, data authority, runtime path, dan blast radius; bukan sekadar daftar service di diagram.
Domain Discovery for Microservices
25 minMempelajari domain discovery untuk microservices: event storming, capability mapping, process mapping, policy discovery, dan cara mengubah pemahaman domain menjadi kandidat service boundary yang masuk akal.
Bounded Context in Practice
19 minMenerapkan bounded context dalam Java microservices: language boundary, consistency boundary, context map, upstream-downstream relationship, anti-corruption layer, dan cara menghindari shared model yang menciptakan distributed monolith.
Service Granularity Decision Model
19 minModel keputusan service granularity untuk Java microservices: cara menentukan service terlalu besar, terlalu kecil, atau cukup tepat berdasarkan ownership, invariant, consistency, deployability, scalability, reliability, dan cost of distribution.
Business Capability to Service Catalog
16 minMengubah business capability map menjadi service catalog production-grade: service charter, owner, API surface, data ownership, SLO, dependencies, maturity, runtime metadata, governance, dan contoh template YAML/MDX untuk Java microservices.
Process Boundaries and Long-Running Workflows
20 minMembedah process boundary, long-running workflow, state machine, saga, orchestration, choreography, SLA, human task, compensation, dan cara mendesain lifecycle bisnis lintas microservices tanpa membuat distributed monolith.
Cross-Entity Impact Analysis
16 minMempelajari cross-entity impact analysis untuk microservices: impact graph, state propagation, policy propagation, audit implication, dependency risk, read-model impact, dan cara mendesain perubahan lintas entity secara defensible.
Anti-Corruption Layer in Java
17 minMempelajari Anti-Corruption Layer dalam Java microservices: translation boundary, adapter, facade, semantic mapping, legacy isolation, external system isolation, event translation, error translation, dan testing strategy.
Architecture Decision Records for Service Boundaries
15 minMempelajari Architecture Decision Records untuk service boundary microservices: context, forces, options, decision, consequences, fitness function, decision log, traceability, dan governance tanpa birokrasi berlebihan.
Anatomy of a Java Microservice
19 minAnatomy of a production-grade Java microservice: internal architecture, runtime contract, dependency direction, observability surface, operational readiness, and implementation skeleton.
Spring Boot vs Jakarta EE vs MicroProfile
18 minDecision framework for choosing Spring Boot, Jakarta EE, MicroProfile, Quarkus, Micronaut, or plain Java for production-grade Java microservices.
Layering vs Hexagonal vs Clean Architecture
11 minMembandingkan layered architecture, hexagonal architecture, dan clean architecture untuk Java microservices production-grade, dengan fokus dependency direction, ports/adapters, domain protection, dan implementasi nyata.
Package Structure That Scales
12 minMendesain package structure Java microservices yang scalable, boundary-aware, testable, dan cocok untuk tim enterprise tanpa jatuh ke package-by-layer, god common package, atau modularity theater.
Application Service Pattern
13 minMemahami application service pattern dalam Java microservices sebagai use-case coordinator, transaction boundary, dan orchestration layer tanpa mencuri business logic dari domain model.
Domain Model Inside Microservices
12 minMendesain domain model di dalam Java microservices dengan rich domain behavior, aggregate, invariant, value object, domain event, dan persistence boundary yang sehat.
Infrastructure Adapters in Java
12 minMendesain infrastructure adapters di Java microservices agar domain tetap bersih, integrasi eksternal terkendali, error diterjemahkan secara eksplisit, dan service mudah dites serta dioperasikan.
Configuration as Runtime Contract
14 minMemperlakukan konfigurasi Java microservice sebagai runtime contract yang tervalidasi, observable, aman, dan eksplisit agar perilaku service konsisten lintas environment.
Service API as Product Contract
18 minAPI service sebagai product contract: consumer empathy, semantic stability, compatibility, operability, governance, dan implementasi boundary Java yang tidak bocor ke domain internal.
REST API Design for Java Microservices
14 minDesain REST API production-grade untuk Java microservices: resource modeling, task-oriented endpoints, HTTP semantics, status code, pagination, filtering, idempotency, Problem Details, ETag, dan controller implementation pattern.
Command Query and Task-Oriented API
12 minMendesain command, query, dan task-oriented API untuk Java microservices agar kontrak lebih dekat ke intent bisnis, aman terhadap retry, tidak chatty, dan tetap evolvable.
gRPC and Binary RPC in Java Microservices
13 minMendesain dan mengoperasikan gRPC/binary RPC untuk Java microservices: proto service boundary, streaming, deadlines, cancellation, status codes, protobuf evolution, client behavior, observability, dan production trade-off.
Event-Driven Collaboration Model
17 minMendesain event-driven collaboration model untuk Java microservices: domain event, integration event, event notification, event-carried state transfer, event sourcing distinction, semantic contract, idempotency, ordering, dan consumer autonomy.
Service Collaboration Patterns
16 minMendesain pola kolaborasi antar Java microservices: request-response, asynchronous messaging, command queue, publish-subscribe, orchestration, choreography, API composition, BFF, hybrid collaboration, dan decision framework.
API Composition and Aggregation
14 minAPI composition dan aggregation untuk Java microservices production-grade: gateway aggregation, BFF, aggregator service, fan-out latency, partial failure, degraded response, caching, observability, dan Java implementation model.
Versioning and Compatibility Strategy
11 minStrategi versioning dan compatibility untuk Java microservices: backward compatibility, tolerant reader, consumer-driven contracts, breaking change taxonomy, expand-contract rollout, REST/event/gRPC evolution, deprecation, dan migration window.
Data Ownership in Microservices
18 minData ownership dalam microservices: authority, private persistence, database-per-service, source of truth, duplication, read model, migration dari shared schema, dan governance kepemilikan data.
Transaction Boundary Design
11 minTransaction boundary design dalam Java microservices: local transaction, business transaction, distributed transaction trap, saga handoff, outbox, idempotency, isolation, optimistic locking, dan placement @Transactional.
Eventual Consistency With Business Meaning
11 minEventual consistency dalam Java microservices dengan makna bisnis: consistency window, read-your-writes, monotonic reads, bounded staleness, projection lag, reconciliation, user-visible state, invariants, dan implementasi Java yang retry-safe.
Saga Pattern in Java
10 minSaga pattern di Java microservices: business transaction, local transaction sequence, choreography, orchestration, compensation, timeout, retry, idempotency, saga state, process manager, testing, observability, dan failure handling.
Outbox, Inbox, and Transactional Messaging
16 minTransactional outbox, inbox deduplication, reliable event publication, message processing semantics, and effectively-once behavior in Java microservices.
Idempotency as a First-Class Design Rule
15 minIdempotency as a first-class design rule for Java microservices: idempotency keys, natural idempotency, retry-safe commands, message deduplication, response replay, and duplicate side-effect defense.
Read Models and Query-Side Design
13 minRead model and query-side design for Java microservices: projections, materialized views, query services, denormalized read models, staleness contract, replay, reconciliation, and ownership-safe querying.
Cross-Service Reporting and Analytics
13 minCross-service reporting and analytics for Java microservices: operational reporting, analytical reporting, CDC, event streams, data products, lakehouse/warehouse integration, reconciliation, governance, lineage, privacy, and avoiding reporting-driven coupling.
Failure Model of Java Microservices
20 minFailure model Java microservices production-grade: taxonomy kegagalan, timeout, overload, saturation, dependency failure, partial availability, dan cara mendesain service agar tidak runtuh saat dependency bermasalah.
Timeouts, Deadlines, and Budget Propagation
13 minTimeout, deadline, dan budget propagation dalam Java microservices: cara mendesain batas waktu end-to-end, membagi budget antar hop, menghindari retry storm, dan mengonfigurasi HTTP/gRPC client secara production-grade.
Retries, Backoff, Jitter, and Retry Storms
12 minRetry, backoff, jitter, retry budget, dan retry storm sebagai control loop reliability dalam Java microservices production-grade.
Circuit Breaker, Bulkhead, and Rate Limiter
11 minCircuit breaker, bulkhead, dan rate limiter sebagai guardrail utama untuk mencegah cascading failure dalam Java microservices.
Load Shedding and Graceful Degradation
18 minLoad shedding dan graceful degradation sebagai strategi eksplisit untuk menjaga sistem tetap hidup ketika traffic atau dependency melampaui kapasitas aman.
Backpressure in Synchronous and Async Systems
15 minBackpressure sebagai flow-control discipline untuk synchronous API, async messaging, worker pool, reactive streams, dan Java microservices agar producer tidak menghancurkan consumer.
Cascading Failure Prevention
20 minMembangun mental model dan mekanisme pencegahan cascading failure pada Java microservices, mulai dari overload propagation, fan-out amplification, retry storm, dependency isolation, sampai emergency levers.
Chaos Thinking for Architects
15 minChaos thinking untuk software architect: merancang eksperimen failure yang aman, berbasis hipotesis, dibatasi blast radius, terukur oleh SLO, dan menghasilkan perbaikan arsitektur nyata pada Java microservices.
Observability Mental Model
17 minObservability mental model untuk Java microservices: logs, metrics, traces, telemetry contract, diagnosis workflow, dan desain service yang bisa dioperasikan tanpa menebak.
Structured Logging in Java Microservices
15 minStructured logging di Java microservices: log schema, correlation ID, MDC, JSON logs, redaction, event naming, async logging, security logging, dan production review checklist.
Metrics That Matter
15 minMetrics yang benar-benar berguna untuk Java microservices: RED, USE, golden signals, business metrics, latency percentile, saturation, cardinality, SLO, dashboard, alerting, dan instrumentation discipline.
Distributed Tracing with OpenTelemetry
14 minDistributed tracing dengan OpenTelemetry untuk Java microservices: trace, span, context propagation, semantic conventions, sampling, baggage, collector, Java agent, manual instrumentation, dan trace-driven debugging.
Health Checks, Readiness, and Liveness
17 minHealth checks, readiness, liveness, startup probe, graceful shutdown, dependency health semantics, dan probe design untuk Java microservices production-grade.
Alerting and SLO Design
15 minAlerting dan SLO design untuk Java microservices: SLI, SLO, error budget, burn-rate alert, symptom-based alerting, runbook, severity, dan operational ownership.
Runbooks and Operational Playbooks
15 minRunbooks dan operational playbooks untuk Java microservices: diagnosis tree, mitigation steps, escalation path, known bad states, evidence capture, dan incident-ready operations.
Production Debugging Without Guessing
18 minProduction debugging tanpa menebak untuk Java microservices: symptom-to-hypothesis, trace-log-metric triangulation, dependency graph diagnosis, latency/error/backlog analysis, dan incident learning loop.