Search⌘ K

The Art and Science of Technology Selection in System Design

Learn how to make informed, scalable, and defensible technology choices in System Design using a structured framework that balances technical trade-offs, integration, and long-term maintainability.

An early technology choice can either become a bottleneck that limits a project’s growth or a foundation that enables it to scale.

Such decisions affect both the technical architecture and the product’s evolution. Learning how to evaluate and justify these choices is an essential skill for software engineers; it’s a core part of effective System Design and key to building scalable, maintainable distributed systems.

This lesson provides a practical framework for making informed technology decisions. We will begin by examining the key factors that influence the selection of technology.

Key factors for evaluating technology fit

The goal is to find the right tool for the job, not necessarily the best tool overall. To achieve this, we require a consistent set of evaluation criteria. By analyzing each potential technology through these lenses, we can make an informed, defensible decision that aligns with our system’s goals.

Here are some of the key factors to consider for evaluating technology fit:

  • Access patterns and scale: How will our system read and write data? A service with a high volume of writes and few reads (like an event logger) has very different needs from a read-heavy system (like a product catalog). Consider the access patterns our system will handle. Additionally, we need to consider scale. A solution that works for 1,000 users might fall over at 1,000,000.

  • Consistency: How critical is it that our data is always correct and never lost? An e-commerce system processing payments requires strong consistency to prevent double-charging. Such systems also rely on idempotency, which ensures that repeated operations, like retrying a payment request, do not produce duplicate results. In contrast, a service that counts social media likes can tolerate eventual consistency. Losing a user’s profile information is unacceptable, so the database must provide strong durability guarantees.

  • Operational maturity: A brand-new technology might promise incredible performance, but it ...