正在加载内容...

963963 Chat News Review Independent coverage of news

Site Topics Fundamentals 4 Explained Without the Jargon

By James Whitfield · · 1332 words
Site Topics Fundamentals 4 Explained Without the Jargon

Observability: A design that cannot be rolled back is a design that cannot be changed safely. Observability: Latency budgets are easier to defend when every hop has a stated ceiling. Observability: Caching helps only until the invalidation rules become the bottleneck.

For api design, the constraint matters more than the feature list. Configurations should be reviewable in a diff, not only in a console. Teams working on api design usually discover this the hard way. The best time to add an index is before the table gets large. Failures are usually correlated, so plan for the shared dependency. This is most visible in api design.

Search Indexing: The interesting number is not the average, it is the 99th percentile. Search Indexing: Adding a cache in front of a slow query is a fix; fixing the query is a cure. Search Indexing: Every abstraction you add is a place where behaviour can differ from intent.

Consider observability specifically. The interesting number is not the average, it is the 99th percentile. Observability: Adding a cache in front of a slow query is a fix; fixing the query is a cure. Every abstraction you add is a place where behaviour can differ from intent. That applies to observability as well.

In practice, load balancing behaves differently: If a metric has no owner, it will drift until it causes an incident. The cheapest optimisation is usually removing work nobody asked for. The same reasoning holds for load balancing. For load balancing, the constraint matters more than the feature list. Aggregating at write time trades flexibility for predictable read cost.

For load balancing, the constraint matters more than the feature list. The first thing to settle is the failure mode, not the happy path. Teams working on load balancing usually discover this the hard way. Measurements taken once are anecdotes; you need a baseline that repeats. Costs usually concentrate in a small number of operations, so find those first. This is most visible in load balancing.

Teams working on cost controls usually discover this the hard way. The interesting number is not the average, it is the 99th percentile. Adding a cache in front of a slow query is a fix; fixing the query is a cure. This is most visible in cost controls. Consider cost controls specifically. Every abstraction you add is a place where behaviour can differ from intent.

Data Pipelines: The interesting number is not the average, it is the 99th percentile. Data Pipelines: Adding a cache in front of a slow query is a fix; fixing the query is a cure. Data Pipelines: Every abstraction you add is a place where behaviour can differ from intent.

For rate limiting, the constraint matters more than the feature list. Configurations should be reviewable in a diff, not only in a console. Teams working on rate limiting usually discover this the hard way. The best time to add an index is before the table gets large. Failures are usually correlated, so plan for the shared dependency. This is most visible in rate limiting.

Cloud Infrastructure: The first thing to settle is the failure mode, not the happy path. Measurements taken once are anecdotes; you need a baseline that repeats. That applies to cloud infrastructure as well. In practice, cloud infrastructure behaves differently: Costs usually concentrate in a small number of operations, so find those first.

Search Indexing: Serving static bytes is the cheapest thing you can do at the edge. Search Indexing: A schema is an interface; changing it is a migration, not an edit. Search Indexing: Track the denominator as carefully as the numerator.

Teams working on crawl budget usually discover this the hard way. You can often replace a coordination problem with an idempotency key. Anything that grows without a bound will eventually hit one. This is most visible in crawl budget. Consider crawl budget specifically. Documentation that is not tested tends to describe the previous version.

In practice, search indexing behaves differently: Periodic jobs should be safe to run twice, because they will be. You rarely need a new component to fix a boundary problem. The same reasoning holds for search indexing. For search indexing, the constraint matters more than the feature list. The signal you want is often already logged, just not aggregated.

Consent requires the ability to make and communicate a choice. Someone who is asleep or unconscious cannot agree at that time. Alcohol or other drugs can affect judgment and communication, but the legal rules for assessing capacity vary. The relevant question is not simply whether someone has consumed a substance; it is whether they can understand the choice and make it freely. If that is unclear, do not proceed.

Content Delivery: Periodic jobs should be safe to run twice, because they will be. You rarely need a new component to fix a boundary problem. That applies to content delivery as well. In practice, content delivery behaves differently: The signal you want is often already logged, just not aggregated.

When the parcel arrives, examine the exterior and any visible seal before discarding the packaging. If the wrong item arrives or the parcel appears damaged, photograph the package and contact the seller through its published support channel before removing labels or packing materials. Keep the order confirmation and any warranty information. Product materials, cleaning instructions and care requirements are found in the product documentation, not reliably inferred from a shipping box; follow the manufacturer’s instructions and retain relevant packaging if a return requires it.

Periodic jobs should be safe to run twice, because they will be. This is most visible in storage tiers. Consider storage tiers specifically. You rarely need a new component to fix a boundary problem. Storage Tiers: The signal you want is often already logged, just not aggregated.

In practice, storage tiers behaves differently: A queue smooths spikes but also hides how far behind you are. Retries without jitter turn a small outage into a large one. The same reasoning holds for storage tiers. For storage tiers, the constraint matters more than the feature list. Separating the reads from the writes buys room to change either side.

Search Indexing: If the rollback plan needs a meeting, it is not a rollback plan. Search Indexing: Small pages that stay small are easier to keep fast than large ones made fast. Search Indexing: Write the invariant down; otherwise it lives only in someone's memory.

A check-up does not necessarily include a physical examination. Many screening visits rely on questions, urine or swab samples, and blood tests; an examination is considered when it is relevant to the person’s concerns or clinical assessment. Patients can ask what an examination involves and discuss consent before it begins.

Access Control: If the rollback plan needs a meeting, it is not a rollback plan. Access Control: Small pages that stay small are easier to keep fast than large ones made fast. Access Control: Write the invariant down; otherwise it lives only in someone's memory.

For search indexing, the constraint matters more than the feature list. Configurations should be reviewable in a diff, not only in a console. Teams working on search indexing usually discover this the hard way. The best time to add an index is before the table gets large. Failures are usually correlated, so plan for the shared dependency. This is most visible in search indexing.

Separate a boundary from a preference where you can. A preference describes something you like or would choose; a boundary describes what you are not willing to do, or what you need in order to feel comfortable. Both are useful information, but a boundary should not be treated as an opening offer to negotiate. You can say, “I’m not comfortable with that,” without supplying a detailed reason.

Queue Design: Serving static bytes is the cheapest thing you can do at the edge. Queue Design: A schema is an interface; changing it is a migration, not an edit. Queue Design: Track the denominator as carefully as the numerator.

Related reading