Spring Boot Testcontainers
Test against real databases and services in containers, manage their lifecycle, and isolate state between tests.
Focused explanations and longer guides, with worked scenarios, common mistakes and interview exercises across every chapter.
Showing 217–240 of 825 articles
Test against real databases and services in containers, manage their lifecycle, and isolate state between tests.
Propagate trace context with Micrometer Tracing, correlate spans across services, and sample without overwhelming storage.
Apply different validation rules for create and update with groups, and sequence checks with group order.
Use simple and searched CASE for conditional values, ordering and aggregation, and avoid the NULL that a missing ELSE produces.
Group by time with date_trunc, write range predicates with >= and < instead of BETWEEN, and handle timezones explicitly.
Prevent deadlocks with a consistent lock order and short transactions, and retry the ones you cannot prevent.
Keep derived values consistent with generated columns, choose STORED or virtual, and index a stored derived value.
Filter rows with WHERE before grouping and groups with HAVING after, and understand why the placement changes cost and correctness.
Store and query semi-structured data with jsonb, extract fields with -> and ->>, and index the queries you actually run.
Walk parent-child data with WITH RECURSIVE, guard against infinite loops, and understand the anchor and recursive terms.
Join a table to itself to compare rows, walk a hierarchy, or find duplicates, and avoid the accidental cross product.
Combine result sets with UNION, UNION ALL, INTERSECT and EXCEPT, and know when deduplication changes cost or meaning.
Protect a service from overload by bounding queues, signaling producers to slow down, and shedding low-priority work.
Use a Bloom filter to skip lookups with a tiny memory footprint, and understand its false-positive-only guarantee.
Make retried requests safe with idempotency keys, store the result per key, and return the original response on a repeat.
Elect a single leader with leases or consensus, use fencing tokens to reject stale leaders, and avoid split brain.
Ingest events, respect preferences, deduplicate and deliver across channels with retries and provider failover.
Track online status with heartbeats and TTLs, derive presence instead of storing it, and avoid fanning out to every client.
Evolve stored and message schemas with additive changes, expand-contract migrations, and reader tolerance across services.
Ingest metrics with bounded cardinality, roll up raw samples, and set retention tiers so storage stays predictable.
Generate short codes from ids, keep the read path fast and cached, and handle collisions and analytics.
Inject a clock instead of calling the system time, freeze it in tests, and remove the sleeps that make tests flaky.
Read line and branch coverage as a signal, not a goal, and avoid the tests that chase the number without checking behavior.
Reserve end-to-end tests for critical user journeys, use stable selectors, and avoid duplicating coverage the lower tests already have.
No notes match that… try another filter.