A library-holds microservice ships to production without a coordinated release of catalog or fines neighbors. How should its automated tests be organized?
Select an answer to reveal the explanation.
Short Explanation
If a desk can open without waiting for every other city office, its tests should too. Confidence lives with the shippable unit, plus a thin contract check—not a whole-estate gate every time.
Full Explanation
An independently deployable library-holds microservice should carry most of its automated confidence inside its own suite—unit tests of its logic and thin contract checks of the interface it publishes—without requiring catalog, fines, and every neighbor to stand up for every ship. That organization mirrors how the service releases: if production does not wait for a coordinated multi-service release, the default gate should not either. Thin contracts still protect the handshake with neighbors without turning every change into an estate-wide integration gate.
Requiring the full multi-service integration suite to pass before any single service may ship fails by concept: it reintroduces the coordinated release coupling the architecture already removed. Skipping automated tests for independently deployable units and relying only on shared overnight staging fails because overnight shared environments are slow, flaky feedback and leave daytime breaks undetected. Mandating that every neighbor rebuild and redeploy before holds unit tests may run fails for the same coupling reason—unit confidence must not wait on unrelated teams’ deploy cycles.
Exam caveat: independent deployability implies mostly local test ownership; shared journeys exist but stay thin. Operational check: run the holds service’s unit and contract suite in CI with neighbors mocked or stubbed at the contract boundary, and reserve a small wiring check for staging rather than blocking every PR on the full estate.