diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2025-12-01 18:34:31 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-01 18:34:31 -0300 |
| commit | 8c8b32d59acc78c7c3e1e8ecae8492a1b728b482 (patch) | |
| tree | b218e550b2b09e4920af6e12db531bfd65f65929 /docs/constraint-enforcement-strategies.puml | |
| parent | e03b7c75be589d12ddc97d074abd2e3a5c6b7cdf (diff) | |
| download | Sakura-8c8b32d59acc78c7c3e1e8ecae8492a1b728b482.tar.gz Sakura-8c8b32d59acc78c7c3e1e8ecae8492a1b728b482.zip | |
Diagrams (#18)
Diffstat (limited to 'docs/constraint-enforcement-strategies.puml')
| -rw-r--r-- | docs/constraint-enforcement-strategies.puml | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/docs/constraint-enforcement-strategies.puml b/docs/constraint-enforcement-strategies.puml new file mode 100644 index 0000000..6e0305d --- /dev/null +++ b/docs/constraint-enforcement-strategies.puml @@ -0,0 +1,42 @@ +@startuml constraint-enforcement-strategies +!theme plain +title Constraint Enforcement Strategies + +state "Operation Request" as Request +state "Immediate Validation" as Immediate +state "Deferred Validation" as Deferred +state "Execute Operation" as Execute +state "Transaction Commit" as Commit +state "Rollback" as Rollback +state "Success" as Success + +Request --> Immediate: Strategy 1:\nEager +Request --> Execute: Strategy 2:\nDeferred + +Immediate --> Execute: Valid +Immediate --> Rollback: Invalid + +Execute --> Deferred: At commit +Deferred --> Commit: Valid +Deferred --> Rollback: Invalid + +Commit --> Success +Rollback --> Request: Retry + +note right of Immediate + Immediate Checking: + - Validate before execute + - Simple reasoning + - May reject valid intermediate states + - Lower performance +end note + +note right of Deferred + Deferred Checking: + - Validate at transaction end + - Allows intermediate invalid states + - Better performance + - Complex error handling +end note + +@enduml |
