Lewati ke isi

T4-W05 Bulk Write Contract

Combined multi-session group

Policy: ALL_OR_NOTHING

  • Complete roster required across canonical sessions.
  • Invalid/out-of-roster student fails before write.
  • Child saves run under a DB savepoint; any child failure rolls back the group.

Single-session save

Policy: request-transaction atomic upsert (PARTIAL_UPSERT_ALLOWED for subset of roster)

  • Only students in session.batch_id.student_ids may be written (invalid_student otherwise).
  • Payload may omit some roster members; omitted students are left unchanged.
  • Mid-request failure aborts the HTTP request (no per-row savepoint).
  • Upsert prevents duplicate lines for submitted students.

Explicit non-policies

  • Not silent skip of invalid students with overall success.
  • Not row-atomic commit of valid rows while keeping invalid rows when validation fails early.