正在加载内容...

963963 Chat Feed Portal Independent coverage of news

Understanding Technology Fundamentals 5: Costs, Limits and Trade-offs

By James Whitfield · · 1265 words
Understanding Technology Fundamentals 5: Costs, Limits and Trade-offs

Consider data pipelines specifically. You can often replace a coordination problem with an idempotency key. Data Pipelines: Anything that grows without a bound will eventually hit one. Documentation that is not tested tends to describe the previous version. That applies to data pipelines as well.

Monitoring Alerts: 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 monitoring alerts as well. In practice, monitoring alerts behaves differently: The signal you want is often already logged, just not aggregated.

Teams working on backup strategy 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 backup strategy. Consider backup strategy specifically. Every abstraction you add is a place where behaviour can differ from intent.

Consider edge caching specifically. Serving static bytes is the cheapest thing you can do at the edge. Edge Caching: A schema is an interface; changing it is a migration, not an edit. Track the denominator as carefully as the numerator. That applies to edge caching as well.

Cloud Infrastructure: Configurations should be reviewable in a diff, not only in a console. Cloud Infrastructure: The best time to add an index is before the table gets large. Cloud Infrastructure: Failures are usually correlated, so plan for the shared dependency.

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

Use direct, ordinary language. For example, ask, “Would you like to continue?” or “Are you comfortable with this?” A clear spoken answer can reduce guesswork, especially when you are unsure how to read someone’s response. Consent can be communicated in different ways, but a practical approach is to check verbally rather than infer agreement from silence, body language or the absence of resistance.

Teams working on observability usually discover this the hard way. If the rollback plan needs a meeting, it is not a rollback plan. Small pages that stay small are easier to keep fast than large ones made fast. This is most visible in observability. Consider observability specifically. Write the invariant down; otherwise it lives only in someone's memory.

In practice, log analysis 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 log analysis. For log analysis, the constraint matters more than the feature list. The signal you want is often already logged, just not aggregated.

For storage tiers, the constraint matters more than the feature list. If a metric has no owner, it will drift until it causes an incident. Teams working on storage tiers usually discover this the hard way. The cheapest optimisation is usually removing work nobody asked for. Aggregating at write time trades flexibility for predictable read cost. This is most visible in storage tiers.

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

Warranty terms may exclude damage caused by immersion, unapproved cleaners, heat or disassembly. Read the terms while the product is new, and keep the order confirmation, instructions and any messages from the seller. If a product needs service, contact the seller or maker before returning it; they can explain cleaning requirements, packaging and whether accessories should be included. Do not mail a product unless the return process authorizes it.

Load Balancing: You can often replace a coordination problem with an idempotency key. Load Balancing: Anything that grows without a bound will eventually hit one. Load Balancing: Documentation that is not tested tends to describe the previous version.

Queue Design: 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 queue design as well. In practice, queue design behaves differently: Costs usually concentrate in a small number of operations, so find those first.

Queue Design: The first thing to settle is the failure mode, not the happy path. Queue Design: Measurements taken once are anecdotes; you need a baseline that repeats. Queue Design: Costs usually concentrate in a small number of operations, so find those first.

For schema migration, the constraint matters more than the feature list. Periodic jobs should be safe to run twice, because they will be. Teams working on schema migration usually discover this the hard way. You rarely need a new component to fix a boundary problem. The signal you want is often already logged, just not aggregated. This is most visible in schema migration.

For log analysis, the constraint matters more than the feature list. Configurations should be reviewable in a diff, not only in a console. Teams working on log analysis 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 log analysis.

Rate Limiting: If a metric has no owner, it will drift until it causes an incident. Rate Limiting: The cheapest optimisation is usually removing work nobody asked for. Rate Limiting: Aggregating at write time trades flexibility for predictable read cost.

Content Delivery: If a metric has no owner, it will drift until it causes an incident. Content Delivery: The cheapest optimisation is usually removing work nobody asked for. Content Delivery: Aggregating at write time trades flexibility for predictable read cost.

A respectful response acknowledges the limit and follows it. A partner may ask a clarifying question, provided the question is not a way to wear someone down. Repeated requests after a clear no, guilt, anger used to secure agreement, or threats to end the relationship can undermine consent. Silence or lack of resistance should not be treated as agreement.

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.

If a metric has no owner, it will drift until it causes an incident. This is most visible in content delivery. Consider content delivery specifically. The cheapest optimisation is usually removing work nobody asked for. Content Delivery: Aggregating at write time trades flexibility for predictable read cost.

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

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.

Related reading