Browse Source

Add past attempts at solutions.

pull/813/head
Mina Galić 4 months ago
parent
commit
046b5d0214
Signed by: igalic <me+github@igalic.co> GPG Key ID: ACFEFF7F6A123A86
1 changed files with 15 additions and 0 deletions
  1. +15
    -0
      DESIGN.md

+ 15
- 0
DESIGN.md View File

@@ -31,3 +31,18 @@ Posts's `AsObject` APIs are called every time a Post is added/updated/deleted.
It builds on `PlumeRocket` as main `Context`, and so we'd have to touch every API if we split either `DbConn` or `Searcher` out of `PlumeRocket`

## Solution Attempts and their Problems

in the past couple of weeks, we've made the following attepts to at least partially dissolve `PlumeRocket`

- [plume-model: refactor Searcher to have its own DbPool](https://git.joinplu.me/Plume/Plume/pulls/809)
- [WIP: Experiment: extract Searcher into an Actor](https://git.joinplu.me/Plume/Plume/pulls/807)
- [extract DbConn from PlumeRocket](https://git.joinplu.me/Plume/Plume/pulls/805)

As soon as we attempted to delete out one of the members from `PlumeRocket`, compiles would fail all over the place, meaning we'd have to touch almost every single function's *signature* that uses `PlumeRocket`.
This then means we'd have to touch every single function that in turn use those functions!
That is a lot of broken code, before we've even started refactoring.

## Strategy

Despite ambitions to use an [Actor System (Riker)](https://riker.rs/), it is not magnitude of the ambitions, but the size of the steps we've taken.
So, given past failures we devise a strategy:

Loading…
Cancel
Save