I want to talk a little about how you can use content-based addressing (aka data fingerprinting) as a general approach to make your applications faster and more secure with some practical JavaScript examples.
First off, I find the concept of content-based addressing dope af. 👀
It's an extremely powerful tool for building services that are fundamentally more performant, scalable and secure. 💪
It's related to immutability, decentralization, data integrity, and more buzzwords...
But it's also so useful and under-appreciated in general that I wanted to write a practical intro to show how it works alongside some real-world JavaScript.
You can think of content-based addressing as fingerprinting for data.
Just like how fingerprints allow you to:
Just replace "person" with "data" in the above descriptions and you have a rough overview of what content-based addressing enables.

Do you know where your data's been? 👀
Put another way, content-based addressing allows you to uniquely and efficiently reference data based on it's actual content as opposed to something external like an ID or a URL.
Database-generated IDs, random GUIDs, and URLs are all useful in their own right, but they're not quite as powerful as data fingerprinting (more on this below).
Let's see how this looks with some real-world code that I've used for reals:
const pick = require('lodash.pick')
const stableStringify = require('fast-json-stable-stringify')
const data = pick(myData, ['keyFoo', 'keyBar'])
const fingerprint = hash(stableStringify(data))