diff options
| author | Joe Carstairs <me@joeac.net> | 2025-07-19 07:29:32 +0100 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2025-07-19 07:29:41 +0100 |
| commit | 76d684a79ace146e505e7222262c27befe5be84f (patch) | |
| tree | de9e84679e026daf678245dfe6d283c41e4a3c71 /requirements/architecture/arch-v1.0.0.md | |
| parent | 0f26732747455e2df60b97c10ec099b65ac08ea2 (diff) | |
add task-040, update arch v1.0.0 -> v1.0.1, edit epic-000, epic-001, task-011, task-025
Diffstat (limited to 'requirements/architecture/arch-v1.0.0.md')
| -rw-r--r-- | requirements/architecture/arch-v1.0.0.md | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/requirements/architecture/arch-v1.0.0.md b/requirements/architecture/arch-v1.0.0.md deleted file mode 100644 index 014cd59..0000000 --- a/requirements/architecture/arch-v1.0.0.md +++ /dev/null @@ -1,63 +0,0 @@ -# Architecture - -Status: accepted - -## Problems - -- Schist must have a read/write SMS interface (req-031, req-045, req-047, - req-053) -- Schist must have a read/write desktop interface (req-021, req-023, req-048, - req-052) -- Schist must read transactions automatically from a banking API (req-015) -- Schist must persist buckets, pipes, drips, and transactions (req-034, req-056, - req-057, req-058, req-051) -- Schist's persisted data must be resilient and recoverable (req-064) -- Schist should have a Web GUI (ass-018) - -## Decisions - - - -- There must be a desktop GUI implemented in iced.rs (ard-000) -- There must be documented processes for installing and updating the desktop GUI - on the user's machine (ard-000) -- The desktop GUI must persist domain entities to an SQLite file (ard-001) -- The desktop GUI must persist config and caches to files (ard-002) -- There must be a CRDT sync server (ard-003) -- There must be a REST API, which sends and receives messages to and from the - desktop GUI and the Web GUI via HTTPS, and sends and receives messages to and - from the CRDT sync server via Unix sockets (ard-004, ard-011) -- The Web GUI must persist domain entities in IndexedDB (ard-005) -- The CRDT sync server must persist domain entities in an SQLite file (ard-006) -- There must be a backups bucket, running on a separate machine to the CRDT sync - server and the users' machines (ard-007) -- There must be a documented process for recovering the server machine from a - backup after a failure (ard-007) -- There must be a backup service, which makes regular backups of the CRDT sync - server from the same machine, and stores the backups in the backups bucket - over HTTPS (ard-007) -- The server machine must host the CRDT sync server, the SQLite file, the backup - service, the REST API, the SMS API and the Web GUI (ard-008) -- There must be documented processes for installing, updating and operating the - software on the server machine (ard-008) -- There must be a Web app server, which serves a Web GUI over HTTPS (ard-009) -- The Web GUI must persist config and caches to Local Storage (ard-010) -- There must be an SMS API (req-031, req-045, req-047, req-053) -- The SMS API must send and receive messages to the CRDT sync server via Unix - sockets (ard-011) - -## Gaps - -- Schist must read transactions automatically from a banking API (req-015) -- Schist must not allow anybody other than the user to access its data at rest - (req-062) -- Schist must not allow anybody other than the user to access its data in motion - (req-063) -- Right now we're assuming that Schist should have a Web GUI (ass-018). Can we - trace this assumption back to user needs? -- Do we need or want any virtualisation or containerisation on the CRDT sync - server? -- Are there expensive lookups or aggregations we should be caching? If so, how - and where should we implement caching? -- Do we want or need any monitoring or logging? -- What patterns or frameworks should we use -- or avoid -- in the Web GUI? |
