Jump to a problem, path or page
Jump to a problem, path or page
Updates as you edit. Run the review to record it; passing every check completes the problem.
Not yet passed: Client responsibility
Add Client and define its responsibility.
Not yet passed: API service responsibility
Add API service and define its responsibility.
Not yet passed: Database responsibility
Add Database and define its responsibility.
Not yet passed: Object storage responsibility
Add Object storage and define its responsibility.
Not yet passed: Import worker responsibility
Add Import worker and define its responsibility.
Not yet passed: Staging store responsibility
Add Staging store and define its responsibility.
Not yet passed: Client → API service
A directed path must connect Client to API service. Arrows represent requests, dependencies, or event flow.
Not yet passed: API service → Database
A directed path must connect API service to Database. Arrows represent requests, dependencies, or event flow.
Not yet passed: API service → Object storage
A directed path must connect API service to Object storage. Arrows represent requests, dependencies, or event flow.
Not yet passed: Import worker → Object storage
A directed path must connect Import worker to Object storage. Arrows represent requests, dependencies, or event flow.
Not yet passed: Import worker → Staging store
A directed path must connect Import worker to Staging store. Arrows represent requests, dependencies, or event flow.
Not yet passed: Import worker → Database
A directed path must connect Import worker to Database. Arrows represent requests, dependencies, or event flow.
Not yet passed: What should an import job pin?
Not yet passed: How do retries avoid duplicate committed rows?
Not yet passed: What does cancellation promise for committed batches?
Not yet passed: API and data model notes
Write at least 80 characters describing concrete operations, inputs, outputs, state and errors. This check measures completeness, not semantic correctness.
Not yet passed: Trade-offs and failure cases
Write at least 80 characters about alternatives, failure handling and edge cases. Review the reasoning yourself using the reference discussion.
Rule-based educational feedback. Notes are checked by length only; topology checks confirm directed reachability. These checks do not validate semantics, latency, reliability or every valid design.
Pin immutable import inputs, stage bounded validated rows and commit deterministic batches with progress in one transaction. Expose partial success and cancellation truthfully instead of implying a global rollback. Authorize the tenant and source upload, record checksum/version and validate a supported mapping/schema. Create an idempotent job with its explicit partial-batch commit policy. Stream-decode/parse with byte/row/column/depth limits. Stage valid rows under deterministic source-row identities and store bounded error details with overflow counts. For each deterministic batch, apply validated upserts/inserts and mark the batch committed in the same destination transaction. Scope natural/operation keys by tenant and reject mapping drift on resume. Cancellation stops admission of new batches and waits/reconciles an in-flight batch. Report accepted/rejected/committed counts and downloadable scoped errors. Retain partial writes under this policy; atomic mode would need another publication boundary.
There is no single correct diagram. Explain where yours differs and which requirement justifies it.