Архитектура: coupling, bottleneck, single point of failure

Тема дорожной карты · Английский для IT

🔊 Словарь терминов с произношением →

Архитектурный английский — язык дизайн-ревью, RFC и собеседований по system design, и здесь важна не только лексика, но и точность определений. Coupling — связанность: степень зависимости компонентов друг от друга; tight coupling — жёсткая, loose coupling — слабая; to decouple — разорвать связь. Cohesion — связность: насколько элементы модуля относятся к одной задаче; high cohesion — хорошо. Bottleneck — узкое место, «горлышко бутылки»: компонент, ограничивающий пропускную способность всей системы. Single point of failure (SPOF) — единая точка отказа. Redundancy — избыточность, failover — переключение на резерв, high availability (HA), fault tolerance — отказоустойчивость, resilience — устойчивость к сбоям с восстановлением. Scalability — масштабируемость: vertical (scale up) и horizontal (scale out). Stateless / stateful. Monolith — монолит, modular monolith, microservices, service mesh, API gateway, BFF (backend for frontend). Layer — слой, tier — уровень развёртывания (three-tier), boundary — граница, bounded context (DDD), domain, aggregate, entity, value object. Separation of concerns — разделение ответственности. Abstraction, encapsulation, interface, contract. Trade-off — компромисс, to trade X for Y. Consistency — согласованность: strong, eventual (в конечном счёте), CAP theorem — consistency, availability, partition tolerance. Idempotency, at-least-once / at-most-once / exactly-once delivery. Synchronous / asynchronous, event-driven, message queue, pub/sub, producer / consumer, broker, topic, dead letter queue. Cache: cache hit / miss, invalidation, TTL, write-through / write-back, cache stampede. Sharding, partitioning, replication, consensus (Raft, Paxos), leader, follower, quorum. Backpressure, throttling, circuit breaker, bulkhead, retry with backoff. Observability: logs, metrics, traces, telemetry. Technical debt — технический долг, to pay down debt, legacy — унаследованная система, greenfield — проект с нуля, brownfield — в существующей системе. Over-engineering, YAGNI, KISS, premature optimization. Anti-pattern: god object, spaghetti code, big ball of mud, golden hammer, distributed monolith. Non-functional requirements (NFR): performance, reliability, security, maintainability. Blast radius, graceful degradation. ADR — architecture decision record. Reference architecture, diagram, C4 model.

Как произносится

Coupling /ˈkʌplɪŋ/ («кАплинг»), cohesion /koʊˈhiːʒən/ («коухИжен»), bottleneck /ˈbɒtlnɛk/, redundancy /rɪˈdʌndənsi/, resilience /rɪˈzɪliəns/ («ризИлиэнс»), resilient /rɪˈzɪliənt/, availability /əˌveɪləˈbɪləti/, scalability /ˌskeɪləˈbɪləti/, monolith /ˈmɒnəlɪθ/ (с «θ»), microservices /ˈmaɪkroʊˌsɜːrvɪsɪz/, tier /tɪər/, boundary /ˈbaʊndəri/, trade-off /ˈtreɪd ɒf/, eventual /ɪˈvɛntʃuəl/, consensus /kənˈsɛnsəs/, quorum /ˈkwɔːrəm/, asynchronous /eɪˈsɪŋkrənəs/, queue /kjuː/, legacy /ˈlɛɡəsi/, greenfield /ˈɡriːnfiːld/, premature /ˈprɛmətʃər/ или /ˌpriːməˈtjʊər/, paradigm /ˈpærədaɪm/ («пЭрэдайм», g немая), hierarchy /ˈhaɪərɑːrki/, heuristic /hjʊˈrɪstɪk/, YAGNI /ˈjæɡni/, KISS /kɪs/.

Как употребляется

  • The billing call is a single point of failure; put a queue in between and make it async. — Вызов биллинга — единая точка отказа; поставь очередь и сделай асинхронно.
  • These modules are tightly coupled: a change in one forces a redeploy of the other. — Модули жёстко связаны: изменение одного требует передеплоя другого.
  • The DB is the bottleneck; everything else is idle. — Узкое место — БД, остальное простаивает.
  • We're trading consistency for availability here. — Здесь мы жертвуем согласованностью ради доступности.
  • Eventual consistency is fine for the feed, not for balances. — Согласованность в конечном счёте подходит для ленты, но не для балансов.
  • It's a distributed monolith: microservices that all deploy together. — Это распределённый монолит: микросервисы, которые деплоятся все вместе.
  • Let's not over-engineer this; YAGNI. — Не будем переусложнять, YAGNI.
  • Write an ADR before we commit to Kafka. — Напиши ADR, прежде чем закладываться на Kafka.

Ловушки

Первая ловушка — coupling и cohesion путать между собой: связанность между модулями (плохо, когда высокая) и связность внутри модуля (хорошо, когда высокая). Вторая — resilience и reliability: надёжность — работать без сбоев, устойчивость — восстанавливаться после сбоев. Третья — scalable как «большой»: масштабируемость это способность расти, а не размер. Четвёртая — trade-off переводить как «сделка»: это компромисс между двумя свойствами. Пятая — legacy как ругательство: в английском это нейтральное «унаследованный», и legacy system может быть прибыльной и стабильной. Шестая — eventual как «возможный»: eventually значит «в конце концов», не «возможно» (это ложный друг с русским «эвентуально»). Седьмая — paradigm с произносимой g.

Связанные понятия

Полезные ресурсы