Learn Java Microservices Communication
// Mental model komunikasi microservices: call, message, event, stream, coupling, failure, dan decision model untuk memilih bentuk komunikasi yang tepat.
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.
Communication Mental Model
14 minMental model komunikasi microservices: call, message, event, stream, coupling, failure, dan decision model untuk memilih bentuk komunikasi yang tepat.
Distributed Boundary Thinking
13 minDistributed boundary thinking untuk Java microservices: mengapa network bukan detail implementasi, bagaimana mendesain boundary, deadline, failure, ownership, dan observability.
Communication Taxonomy
18 minTaksonomi komunikasi microservices: request/response, fire-and-forget, command queue, pub/sub, event notification, event-carried state transfer, streaming, dan bagaimana memilihnya secara sadar.
Sync vs Async Decision Model
14 minDecision model untuk memilih komunikasi synchronous atau asynchronous berdasarkan invariants, latency budget, consistency, coupling, failure handling, dan operability.
Learn Java Microservices Communication Part 005 Coupling Axis
19 minLearn Java Microservices Communication Part 006 Latency Throughput Reliability Tradeoff
20 minLearn Java Microservices Communication Part 007 Failure First Communication Design
21 minLearn Java Microservices Communication Part 008 Communication Invariants
18 minHTTP as Microservice Transport
17 minHTTP as a microservice transport, from protocol semantics to production usage boundaries, failure modes, observability, and Java implementation posture.
HTTP Method Semantics: Safety, Idempotency, Cacheability
17 minDeep practical guide to HTTP method semantics for Java microservices; safety, idempotency, cacheability, state transitions, retries, and production API design.
Status Code Design for Service-to-Service APIs
20 minProduction-grade guide to HTTP status code design for Java service-to-service APIs; success, client failure, server failure, retriability, Problem Details, and Java implementation patterns.
Headers, Metadata, Correlation, and Context Propagation
16 minDeep practical guide to HTTP headers, metadata, correlation, distributed tracing, deadline propagation, idempotency keys, tenancy context, and safe context propagation in Java microservices.
Timeout Budgeting for HTTP Calls
14 minProduction-grade timeout budgeting for HTTP service-to-service calls in Java microservices, covering deadline propagation, per-attempt timeout, total budget, retries, cancellation, observability, and failure semantics.
Connection Pooling, Keep-Alive, DNS, and Socket Lifecycle
15 minProduction-grade guide to HTTP connection pooling, keep-alive, DNS behavior, socket lifecycle, connection reuse, HTTP/1.1 vs HTTP/2 pooling implications, and Java client operational tuning.
HTTP/1.1 vs HTTP/2 in Internal Communication
19 minProduction-grade guide to HTTP/1.1 vs HTTP/2 for internal Java microservice communication, covering framing, multiplexing, connection reuse, flow control, head-of-line blocking, Java client behavior, proxy behavior, and decision criteria.
HTTP/3 and QUIC Considerations for Microservices
15 minProduction-grade guide to HTTP/3 and QUIC considerations for Java microservices, covering QUIC transport, UDP realities, TLS, stream multiplexing, connection migration, Java support, proxies, service mesh implications, and adoption decision criteria.
Compression, Payload Size, and Wire Efficiency
15 minProduction-grade guide to compression, payload size, representation design, and wire efficiency for Java microservice HTTP communication.
Error Response Modeling: Problem Details, Retriability, Diagnostics
13 minProduction-grade guide to modeling HTTP error responses in Java microservices using status codes, Problem Details, retriability classification, diagnostics, and safe operational contracts.
JDK HttpClient for Microservice Calls
12 minProduction-grade guide to using JDK HttpClient as the baseline synchronous and asynchronous HTTP client for Java microservice communication.
Spring RestClient: Synchronous HTTP Done Properly
10 minProduction-grade guide to using Spring RestClient as a modern synchronous HTTP client for Java microservice communication.
Spring WebClient: Reactive HTTP Without Magical Thinking
10 minProduction-grade guide to Spring WebClient for reactive and non-blocking HTTP communication in Java microservices.
OpenFeign: Declarative HTTP Clients and Their Hidden Costs
10 minProduction-grade guide to OpenFeign and Spring Cloud OpenFeign for declarative HTTP clients in Java microservices.
MicroProfile Rest Client for Jakarta/MicroProfile Systems
16 minProduction-grade guide to MicroProfile Rest Client for Jakarta/MicroProfile Java microservices.
Designing Client Abstraction Boundaries
13 minProduction-grade guide to designing client abstraction boundaries for Java microservices communication.
Client Configuration Model
18 minProduction-grade configuration model for Java microservice HTTP clients, covering timeout, retry, circuit breaker, bulkhead, pool, rate limit, TLS, payload, and per-operation policies.
Client-Side Observability
16 minProduction-grade client-side observability for Java microservice communication, covering traces, metrics, logs, context propagation, cardinality, error taxonomy, dashboards, and alerting.
HTTP Client Testing with Stubs, Fakes, and Contract Fixtures
15 minHTTP client testing with stubs, fakes, contract fixtures, failure simulation, and CI gates for production-grade Java microservice communication.
Production-Grade HTTP Client Template
9 minA production-grade Java HTTP client template covering package structure, configuration, resilience policy, observability, error mapping, tests, and operational readiness.
API Surface Area Control
18 minAPI surface area control for internal HTTP services: why every endpoint is a dependency, how to shape stable boundaries, and how to prevent communication sprawl.
Resource APIs vs Action APIs
13 minResource APIs vs action APIs for Java microservices: how to choose between CRUD-shaped resources and explicit domain actions without abusing HTTP semantics.
Command/Query Split in Internal HTTP APIs
16 minCommand/query split in internal HTTP APIs: how to design read and write endpoints with different semantics, failure models, latency budgets, idempotency, and Java implementation boundaries.
Pagination, Filtering, Sorting, and Query Stability
13 minPagination, filtering, sorting, and query stability for internal Java microservice HTTP APIs: cursor tokens, stable ordering, index-aware filters, bounded result sets, and failure-safe contracts.
Bulk and Batch Endpoints Without Breaking Reliability
19 minBulk and batch endpoint design for Java microservices: bounded payloads, item-level outcome modeling, atomicity choices, async job handoff, concurrency limits, and operational safety.
Idempotency-Key Pattern for Commands
17 minIdempotency-Key pattern for Java microservices: duplicate prevention, request fingerprinting, response replay, unknown outcomes, storage design, concurrency handling, and safe retries for side-effecting HTTP APIs.
Request Deduplication and Replay Safety
15 minRequest deduplication and replay safety for Java microservices: duplicate sources, identity model, dedup state machine, response replay, concurrency handling, TTL, outbox integration, testing, and operational runbook.
HTTP API Versioning for Internal Services
16 minHTTP API versioning for Java microservices: compatibility lifecycle, additive and breaking changes, version placement, OpenAPI versioning, expand-contract migration, deprecation, consumer telemetry, Java implementation patterns, and governance.
OpenAPI for Internal Service Communication
11 minOpenAPI for internal Java microservices: contract-first mindset, operation design, reusable components, error modeling, idempotency, pagination, governance, linting, diffing, testing, documentation, and production communication policy.
Generated Clients: Productivity, Drift, and Failure Modes
14 minGenerated client pitfalls for Java microservices: OpenAPI code generation trade-offs, hidden coupling, generated DTO leakage, enum traps, exception mapping, transport policy, versioning, build reproducibility, security, testing, and safe wrapper architecture.
Timeout Design: Connect, Read, Write, Total, Deadline
15 minTimeout design for synchronous Java microservice calls: connect/read/write/total timeout, deadline propagation, timeout budget math, pool acquisition, DNS/TLS, server cancellation, gRPC deadlines, Resilience4j TimeLimiter, testing, observability, and production policy.
Retry Design: Backoff, Jitter, Budgets, and Retry Storms
15 minRetry design for synchronous Java microservice calls: retry eligibility, idempotency, unknown outcome, exponential backoff, jitter, Retry-After, retry budgets, amplification, Resilience4j Retry, testing, observability, and production policy.
Circuit Breaker Design with Resilience4j
16 minCircuit breaker design for Java microservices with Resilience4j: state machine, failure rate, slow call rate, sliding windows, half-open probes, exception classification, composition with timeout/retry/bulkhead, observability, testing, and production policy.
Bulkhead Isolation: Thread, Semaphore, Queue, Pool
14 minBulkhead isolation for Java microservices: semaphore and thread-pool bulkheads, dependency isolation, capacity math, queue limits, virtual threads considerations, Resilience4j Bulkhead, composition with timeout/retry/circuit breaker, observability, testing, and production policy.
Rate Limiting and Client-Side Throttling
16 minRate limiting for Java microservices: client-side and server-side throttling, quotas, token bucket, leaky bucket, fixed/sliding windows, RateLimit headers, Retry-After, Resilience4j RateLimiter, fairness, priority, testing, observability, and production policy.
Load Shedding and Graceful Degradation
15 minLoad shedding and graceful degradation for Java microservices: overload signals, admission control, priority-based shedding, brownout, fallback, queue management, retry shedding, Envoy overload manager, Kubernetes/gateway considerations, testing, observability, and production policy.
Hedged Requests: Tail Latency vs Amplified Load
15 minHedged requests for Java microservices: tail latency mitigation, duplicate request semantics, quorum/fan-out mental model, when to hedge, when not to hedge, cancellation, idempotency, load amplification, adaptive hedging, implementation sketches, testing, observability, and production policy.
Fallbacks, Stale Data, and Semantic Degradation
14 minFallbacks and stale data for Java microservices: semantic degradation, stale cache, stale-if-error, partial response, fallback taxonomy, command vs query fallback, data freshness contracts, brownout, cache design, testing, observability, and production policy.
Deadline Propagation Across Service Calls
12 minDeadline propagation for Java microservices: end-to-end time budgets, HTTP deadline headers, gRPC deadlines, request context, cancellation, retry/hedging/fallback interaction, async boundaries, database timeouts, observability, testing, and production policy.
Production Resilience Policy Template
14 minProduction resilience policy template for Java microservices: unified policy design for timeout, deadline, retry, circuit breaker, bulkhead, rate limit, load shedding, hedging, fallback, observability, validation, governance, rollout, testing, and runbooks.
gRPC Communication Mental Model
6 mingRPC communication mental model for Java microservices: RPC semantics, HTTP/2, Protobuf, service contracts, deadlines, status codes, metadata, streaming, load balancing, security, observability, and production fit.
Protocol Buffers Contract Design
5 minProtocol Buffers contract design for Java microservices: message modeling, field numbering, compatibility, reserved fields, enums, optional fields, oneof, package naming, API evolution, validation, documentation, and CI gates.
Java gRPC Server Implementation
10 minProduction-grade Java gRPC server implementation: generated service base, service implementation, Netty server lifecycle, interceptors, metadata, deadlines, cancellation, error mapping, validation, observability, security, testing, and operational readiness.
Java gRPC Client Implementation
10 minProduction-grade Java gRPC client implementation: channel lifecycle, generated stubs, blocking/async/future stubs, deadlines, metadata, interceptors, error mapping, retry, load balancing, TLS, observability, testing, and operational readiness.