background

the elements of computing are storage, compute, and communications.
Mainframes, PCs, mobile, and cloud all manifest these elements in their own unique ways.
Specialized building blocks emerge to reconcile tradeoffs within a given element.
For example, in the storage element we have both file systems and databases,
where file systems are for storing blobs like mp3s with a hierarchy of directories and files,
and databases are for storing structured metadata with a query interface like SQL
In the centralized cloud, we might use Amazon S3 for blob storage, MongoDB Atlas for databases, and Amazon EC2 for processing.
You can actually put further hierarchy into these building blocks.
E.g. databases sit on top of file systems, which sit on raw data (blob) storage. And distributed databases involve communication.
For example, most modern databases talk to the underlying storage via a file system like Ext4, XFS or GridFS.
The framing I give in this article is that of an applications programmer: what’s the UX for a file system, the UX for a database, etc.
image.png
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.