aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/architecture.plantuml72
1 files changed, 72 insertions, 0 deletions
diff --git a/docs/architecture.plantuml b/docs/architecture.plantuml
new file mode 100644
index 0000000..90985ba
--- /dev/null
+++ b/docs/architecture.plantuml
@@ -0,0 +1,72 @@
+@startuml
+allowmixing
+
+package Client {
+ object "Query Interface" as query_interface
+}
+
+package Algebra {
+ object "Unifier" as unifier
+ object "Bytecode Builder" as bytecode_builder
+ object "Parser" as parser
+ object "Lexer" as lexer
+}
+
+query_interface --> lexer
+lexer --> parser
+parser --> unifier
+unifier --> bytecode_builder
+
+package Query {
+ object "Schema Builder" as schema_builder
+ object "Facts Builder" as facts_builder
+ object "Optimizer" as optimizer
+ object "Commands Generator" as commands_generator
+ object "B+ Tree" as b_plus_tree
+}
+
+bytecode_builder --> optimizer
+optimizer --> commands_generator
+facts_builder --> commands_generator
+schema_builder --> commands_generator
+commands_generator --> b_plus_tree
+b_plus_tree --> query_interface
+
+package Coordinator {
+ object "File Historical Hashes" as file_historical_hashes
+ object "Location Hashes" as location_hashes
+ object "Command Parser" as command_parser
+ object "Curator" as curator
+}
+
+commands_generator <-- command_parser
+
+package Disk {
+ object "Merkle Tree Root Generator" as merkle_tree
+ object "WAL Reader" as wal_reader
+ object "WAL Writer" as wal_writer
+ object "ARIES" as aries
+ object "SHA256 Hasher" as sha
+ object "Executor" as executor
+ map storage {
+ write => +λ
+ read => +λ
+ }
+ object "Courier" as courier
+ database Wal
+}
+
+executor *--> merkle_tree
+executor *--> sha
+curator --> command_parser
+command_parser --> executor
+location_hashes *--> curator
+file_historical_hashes *--> curator
+executor --> aries
+aries --> wal_reader
+aries --> wal_writer
+wal_writer --> Wal
+wal_reader --> Wal
+courier <-- wal_reader
+courier --> storage
+@enduml \ No newline at end of file