Decision Records#

TDD: When to write tests?#

(Starting with a blank page?)

SQLite?#

Read/write to to SQLite on start/exit (and write to local file for cache) (otherwise mod SQLite to use Tahoe) write to redis on the fly (for caching) : more dependencies

Time Zone for date field?#

UTC would be best and then (optionally display in the user’s locale?)

Kelvin for temp#

Should I collect from user in C or F rather than force them to enter Kelvin?

Flow rate from 0 - 50#

Should the upper boundary be lower?

Choose an HTTP client for the examples#

requests

SQLite for the “database” in Private facts

Introduce the file/path metaphor later?#

Do it later

Other pending content#

Footnote on the LIT (for short items, that don’t even leave the client)

Domain Model#

https://www.cosmicpython.com/book/chapter_01_domain_model.html#_what_is_a_domain_model

Entity Value Object Domain Service

Entity#

  • User Account

Value Object#

  • fURL

  • Content

  • Metadata (alias, path, directory)

A user uploads content, they send a file and get a fURL

app -> a

User downloads content, they send a fURL and get the content

User creates a directory, they send a name (path?) and get fURL

(User does not update)

User deletes a file, they send a fURL and a delete

Control Plane#

Tahoe commands over Foolscap (“the API”)

Data Plane#

Content over HTTPS

Mutable: SDMF vs NDMF#

Use SDMF for the initial small file scenarios. Later, with more elaborate file types like images and movies.