summaryrefslogtreecommitdiff
path: root/requirements/architecture/arch-v1.md
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2025-07-16 19:50:20 +0100
committerJoe Carstairs <me@joeac.net>2025-07-16 23:13:33 +0100
commit71b012799f7081c80fe8a03a5862e316e22e6d93 (patch)
tree48762902ae53eb6c8388cb9957afea17037058dd /requirements/architecture/arch-v1.md
parenta9b04233ca31e432bb77626ccec4249bbf3bcdf7 (diff)
task-007 document architecture
Diffstat (limited to 'requirements/architecture/arch-v1.md')
-rw-r--r--requirements/architecture/arch-v1.md29
1 files changed, 29 insertions, 0 deletions
diff --git a/requirements/architecture/arch-v1.md b/requirements/architecture/arch-v1.md
new file mode 100644
index 0000000..a8b8b13
--- /dev/null
+++ b/requirements/architecture/arch-v1.md
@@ -0,0 +1,29 @@
+# Architecture
+
+![architecture diagram](./architecture.png)
+
+- There must be a desktop GUI
+- The desktop GUI must persist domain entities to an SQLite file
+- The desktop GUI must persist config and caches to files
+- The desktop GUI must send and receive messages to the REST API via HTTPS
+- There must be a REST API
+- The REST API must send and receive messages to the CRDT sync server via Unix
+ sockets
+- There must be a CRDT sync server
+- The CRDT sync server must send and receive messages to the NoSQL database via
+ Unix sockets
+- There must be a backup service
+- The backup service must communicate to the backups bucket via HTTPS
+- There must be a backups bucket
+- The backups bucket and the server must live on different machines
+- There must be a Web app server, which serves a Web GUI over HTTPS
+- The Web GUI must save domain entities to IndexedDB
+- The Web GUI must persist config and caches to Local Storage
+- The Web GUI must send and receive messages to the REST API via HTTPS
+- There must be an SMS API
+- The SMS API must send and receive messages to the CRDT sync server via Unix
+ sockets
+
+## TBC
+
+- What kind of NoSQL database should be used on the server?