Long transactions hold database resources while unrelated remote work waits. Keep transaction boundaries aligned with local consistency needs.
Before you start
You should know Java classes, dependency injection and basic HTTP requests. Identify where a call crosses a framework-managed boundary. The snippets illustrate a focused mechanism; database configuration, application wiring and authentication must be supplied by the surrounding application when applicable.
The practical goal is to reason through this situation: Calling a slow payment API inside a database transaction can retain locks for its duration. Read the walkthrough first, then try the interview exercise before opening its answer. The important part is explaining the decision and its consequences, rather than remembering a definition alone.
Step-by-step walkthrough
Step 1: List local consistency needs
Only related database changes belong in the local atomic boundary.
Step 2: Identify remote waiting
A slow payment call can hold locks and a connection without extending database atomicity to payment.
Step 3: Coordinate separate effects
Use idempotent workflow and compensation or an outbox where appropriate.
Worked scenario
Calling a slow payment API inside a database transaction can retain locks for its duration.
Payment succeeds, then the database transaction rolls back. The remote payment remains completed because it was never part of that local rollback. Holding the transaction open did not solve this failure. Model recorded intent, retries and reconciliation explicitly rather than promising distributed atomicity.
Common mistake
A database rollback cannot reverse a completed external payment.
Verify the behavior
Simulate remote success followed by local failure and verify the reconciliation or compensation path.
Interview exercise
Coordinate database and remote changes.
Answer and reasoning
Use explicit workflow, idempotency and compensation or an outbox-style boundary rather than promising one distributed rollback.
Continue learning
Compare the scenario with the Spring Boot interview questions and test your understanding with the Spring Boot MCQs. For terminology and implementation details, consult the reference material.