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/karuta-interface-layers.puml | |
| parent | e03b7c75be589d12ddc97d074abd2e3a5c6b7cdf (diff) | |
| download | Sakura-8c8b32d59acc78c7c3e1e8ecae8492a1b728b482.tar.gz Sakura-8c8b32d59acc78c7c3e1e8ecae8492a1b728b482.zip | |
Diagrams (#18)
Diffstat (limited to '')
| -rw-r--r-- | docs/karuta-interface-layers.puml | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/docs/karuta-interface-layers.puml b/docs/karuta-interface-layers.puml new file mode 100644 index 0000000..cd5443e --- /dev/null +++ b/docs/karuta-interface-layers.puml @@ -0,0 +1,65 @@ +@startuml karuta-interface-layers +!theme plain +title Karuta Interface Architecture Layers + +actor "Karuta Program" as Karuta + +package "Language Bindings" { + [Karuta FFI] as FFI + [Erlang Ports] as Ports + [NIF (Native)] as NIF +} + +package "Stable Contract Layer" { + component "domino.erl" as DominoAPI { + [create_database/1] + [execute/2] + [query/2] + [transaction/2] + } +} + +package "Command Processor" { + [Command Parser] as CmdParser + [Validator] as Validator + [Executor] as Executor +} + +package "Implementation Layer" { + component "operations.erl" as Ops { + [create_relation/3] + [create_tuple/3] + [get_tuples_iterator/2] + [etc...] + } +} + +database "Mnesia Storage" as Storage + +Karuta --> FFI +Karuta --> Ports +Karuta --> NIF + +FFI --> DominoAPI +Ports --> DominoAPI +NIF --> DominoAPI + +DominoAPI --> CmdParser +CmdParser --> Validator +Validator --> Executor + +Executor --> Ops +Ops --> Storage + +note right of DominoAPI + Stable, versioned interface + Command format: + {Verb, Entity, Name, Parameters} + + Examples: + {create, relation, employee, Schema} + {insert, tuple, employee, Data} + {query, relation, employee, Constraints} +end note + +@enduml |
