engineering notes about software architecture from your favourite corps by engineers for engineers.
Jun 10, 2024 • 11 tweets • 4 min read
It is often surprising how little is known about how databases operate at a surface level, considering they store almost all of the states in our applications. Things You Should Know About Databases.
Indexes are a data structure that helps decrease the look-up time of requested data. Indexes achieve this with the additional costs of storage, memory, and keeping it up to date (slower writes), which allows us to skip the tedious task of checking every table row.
Jan 12, 2023 • 12 tweets • 5 min read
Your app is getting better. It has more features, more active users, and every day it collects more data. Your database is now causing the rest of your application to slow down.
Engineers often get caught up in doing things the most involved way, but keeping things simple early on makes challenging things later on as your application evolves much easier. So if your problem goes away by getting machines with more resources, 9/10, that's the correct answer
Dec 28, 2022 • 13 tweets • 4 min read
With the breach of LastPass and everyone wondering if their vaults will be impervious to attacks. I thought it might be good time to refresh our understanding on two type of encryption. Once we do that let's talk about encryption in password managers.
There are two classes of encryption, but until 1976 symmetric key encryption was the only show in town. It involves a shared key used to encrypt and decrypt messages.
Nov 8, 2022 • 12 tweets • 5 min read
Simon Willison (@simonw), the creator of Datasette, writes about SQLite and the challenges of building a server-side web application that also works in Electron and WebAssembly. It's a great read — I hope you enjoy it and hopefully learn something.
Datasette datasette.io is a tool for exploring and publishing data. The original goal of the project was to make it easy and inexpensive to publish structured datasets online.
Oct 27, 2022 • 13 tweets • 5 min read
It is often surprising how little is known about how databases operate at a surface level, considering they store almost all of the states in our applications. Things You Should Know About Databases.
Indexes are a data structure that helps decrease the look-up time of requested data. Indexes achieve this with the additional costs of storage, memory, and keeping it up to date (slower writes), which allows us to skip the tedious task of checking every table row.
Oct 14, 2022 • 11 tweets • 5 min read
A deep technical dive into all things Redis. Covering various Redis topologies, data persistence and process forking.
Redis redis.io (“REmote DIctionary Service”) is an open-source key-value database server.
Jul 30, 2022 • 10 tweets • 3 min read
There is often a level of focus on the bigger picture when it comes to system design, but we often don't think about the underlying components in these systems. So let's chat about different levels of memory.
Over the years memory has increased in capacity and in speed as you can see with the chart below it's been following a trajectory called Moore's law.
Jul 15, 2022 • 14 tweets • 4 min read
There are many discussions about which level of system granulation is the best. We went from monoliths to microservices and back again. Today we will break it down.. a bit.
The big kahuna, the monolith! Most systems start here, and I would argue most systems should stay here. Monoliths are deployed and developed as a single unit. It contains all the functionality that the application supports, from UI to the database.
Jul 11, 2022 • 8 tweets • 3 min read
Latency. Latency. You hear about this every day. Understanding latency is essential in all parts of our systems, including registers, main memory, disk, and network. In addition, understanding these latencies is vital so you can reason about various aspects of your system.
Latency is physically a consequence of the limited velocity at which any physical interaction can propagate, which is always < speed of light.
Jul 6, 2022 • 10 tweets • 3 min read
Lets talk about encryption foundational topic in system design. Encryption involves converting human-readable plaintext into incomprehensible text, which is known as ciphertext and decrypting it back to plaintext again.
There are two classes of encryption, but until 1976 symmetric key encryption was the only show in town. It involves a shared key used to encrypt and decrypt messages.