Skip to main content

SLA Study Cases (from ERD/PRD notes)

Cheat‑sheet of common SLA patterns to guide implementation and UI mapping. Field hints: scope_type, rule_type, threshold, condition_policy, outcome_policy.

1. Status‑based SLA (aging on a single status)

  • A1 Max time in approval status
    • Case: Item cannot stay > 2 hours in WAITING_APPROVAL.
    • scope_type: STATUS · rule_type: AGING · threshold: 120 minutes.
  • A2 Max time to complete data entry
    • Case: User must finish data within 30 minutes.
    • scope_type: STATUS · rule_type: AGING · threshold: 30 minutes.
  • A3 SLA only for specific status
    • Case: SLA applies only when status = WAITING_VENDOR.
    • scope_type: STATUS · rule_type: AGING.

2. Action‑based SLA (triggered by transitions)

  • B9 Business‑hours SLA
    • Case: SLA counts working hours only (e.g., 08:00–17:00).
    • scope_type: ACTION · rule_type: AGING · threshold example: 2 hours · condition_policy: { "business_hours_only": true }.
  • B10 Weekday‑only SLA
    • Case: Weekends excluded from timer.
    • scope_type: ACTION · rule_type: AGING · condition_policy: { "exclude_weekend": true }.
  • B11 Post‑submit SLA
    • Case: After action SUBMITTED, must reach Approved ≤ 1 day.
    • scope_type: ACTION · rule_type: AGING · threshold: 1 day.
  • B12 One‑time transition check
    • Case: Validate SLA only when entering status X.
    • scope_type: STATUS · rule_type: ON_TRANSITION.
  • B13 Cancel action SLA
    • Case: Cancel must be processed within 15 minutes.
    • scope_type: ACTION · rule_type: AGING · threshold: 15 minutes.
  • B14 Rework SLA after reject
    • Case: After REJECT, resubmit ≤ 1 hour.
    • scope_type: STATUS · rule_type: AGING · threshold: 60 minutes.

3. Cross‑workflow SLA

  • E22 Wait for sibling workflow completion
    • Case: DO must close ≤ 1 hour after all WO complete.
    • scope_type: STATUS · rule_type: AGING · condition_policy: { "all_dependencies_done": true }.
  • E23 Depends on child workflow status
    • Case: Parent breaches if child not DONE.
    • condition_policy: { "child_status_required": "DONE" }.
  • E24 Aggregated MANY→ONE timing
    • Case: Start SLA when first child finishes; stop when all finish.
    • rule_type: AGING · relation: MANY_TO_ONE.

4. Edge cases / safety

  • G32 No double start
    • Case: Same status should not start SLA twice.
  • G33 Resilient across service restart (must)
    • Case: Engine restart must keep SLA timers consistent.
  • G35 Manual override
    • Case: Admin can mark SLA as resolved.
    • outcome_policy: { "allow_manual_resolve": true }.

5. Field mapping reminder (for forms)

  • scope_type: STATUS | ACTION | WORKFLOW
  • rule_type: AGING (elapsed), ON_TRANSITION (event), AGGREGATE (cross entities)
  • threshold: number + unit (minutes/hours/days)
  • condition_policy: JSON for modifiers (business hours, weekend exclusion, child status, etc.)
  • outcome_policy: JSON for overrides/escalations.