Перейти к основному содержимому
DevScallix

Architecture Decision Lab

Примите решение. Посмотрите, что будет.

Каждый сценарий — реальная ситуация в команде. Выберите вариант — увидите последствия, компромисс и условия, при которых лучше был бы другой вариант.

Сценарии на английском языке.

Сценариев: 0 из 6

01 · Middle

An order is created and inventory and email must be told

The order service writes the order to PostgreSQL, then must tell the inventory service and trigger a confirmation email to the customer. At peak, about 200 orders per second are expected (an assumed figure). The email provider is sometimes slow or briefly unavailable. The team already runs a Kafka cluster.

Ограничения

  • Accepting an order must not depend on the email provider's speed.
  • The inventory notification for a confirmed order must not be lost.
  • The team has 4 people and does not want to add new infrastructure.
How should these notifications be delivered?

02 · Middle

Product catalogue: fast reads, but price changes must show quickly

The catalogue API is read-heavy: about 2000 reads per second, and only a few writes per minute (assumed figures). Product data lives in PostgreSQL, which is loaded at peak. A price change must be visible to customers in at most one minute. The team already uses Redis.

Ограничения

  • Price-change visibility delay of at most 1 minute.
  • Read load on the database must go down.
  • There is no time to maintain complex invalidation logic.
Which caching strategy fits these constraints best?

03 · Senior

Deploys are slow and the team wants microservices

A team of 5 runs a Spring Boot monolith; the code is split into modules, but boundaries between them are not enforced and there is one database. Deploys are slow because the CI pipeline runs all tests and every release is checked by hand. The team wants to move to microservices to fix the slow deploys. There is no platform or DevOps specialist.

Ограничения

  • Only 5 engineers and no dedicated platform team.
  • The main pain is deploy speed; there is no need for independent scaling.
  • The business cannot afford delays in new features.
What should the first step be?

04 · Senior

Moving money between two accounts held by different services

Accounts currently live in two separate services with separate databases: one for local accounts and one for external payment accounts. A user wants to move money from one to the other. In every case money must be neither lost nor created twice. The services talk over HTTP and network failures are possible.

Ограничения

  • Money must never be lost or duplicated.
  • Services and databases are separate, with no shared transaction manager.
  • Every step must be traceable for audit.
How should the transfer be organized?

05 · Senior

A reporting dashboard slows the transactional database

An internal reporting dashboard runs heavy aggregation queries during business hours, and order transactions sharing the same PostgreSQL slow down. The transactional database is a single primary instance. Staff tolerate reports that are a few minutes old, but some managers want "today's sales" to be roughly fresh. The budget is limited.

Ограничения

  • Transaction latency must not be affected by reports.
  • Report data may be a few minutes stale.
  • The team has limited experience running additional systems.
How should the reporting load be separated?

06 · Architect

An LLM assistant that can change customer orders

The product team wants an LLM-based assistant that helps customers change their orders (address, quantity, cancellation). The backend already has APIs for these operations with validation and authorization rules. The model can sometimes misunderstand, or be manipulated by instructions hidden in user text (prompt injection). Order changes carry financial and customer impact.

Ограничения

  • A customer may only change their own orders.
  • A wrong or manipulated action must not cause harm.
  • Actions must be auditable and reversible where possible.
How should the assistant's ability to change orders be designed?

Хотите научиться защищать такие решения в реальных проектах?

Посмотрите программы System Design и Solution Architecture или попробуйте case-интервью.