aboutsummaryrefslogtreecommitdiffstats
path: root/docs/constraint-enforcement-strategies.puml
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2025-12-01 18:34:31 -0300
committerGitHub <noreply@github.com>2025-12-01 18:34:31 -0300
commit8c8b32d59acc78c7c3e1e8ecae8492a1b728b482 (patch)
treeb218e550b2b09e4920af6e12db531bfd65f65929 /docs/constraint-enforcement-strategies.puml
parente03b7c75be589d12ddc97d074abd2e3a5c6b7cdf (diff)
downloadSakura-8c8b32d59acc78c7c3e1e8ecae8492a1b728b482.tar.gz
Sakura-8c8b32d59acc78c7c3e1e8ecae8492a1b728b482.zip
Diagrams (#18)
Diffstat (limited to 'docs/constraint-enforcement-strategies.puml')
-rw-r--r--docs/constraint-enforcement-strategies.puml42
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