Какие знаешь фреймы взаимодействия

«Какие знаешь фреймы взаимодействия» — вопрос из категории API и интеграции, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Фреймы взаимодействия — это шаблоны коммуникации между компонентами/системами. Основные типы:

  1. Request-Response (синхронный): клиент ждёт ответа. Пример — HTTP, REST API.
response = requests.get('https://api.example.com/data')  # клиент блокируется до ответа
  1. Publish-Subscribe (асинхронный): издатели рассылают события, подписчики их получают. Пример — Kafka, RabbitMQ.
# Издатель
channel.basic_publish(exchange='logs', body='Сообщение')  

# Подписчик
def callback(ch, method, properties, body):
    print("Получено:", body)
  1. Event-Driven: система реагирует на события (например, клик в UI или изменение данных). Пример — WebSockets, AWS Lambda.

  2. Polling: клиент периодически опрашивает сервер. Неэффективно, но просто.

while True:
    data = check_for_updates()  # опрос каждые N секунд
    time.sleep(5)
  1. Push-Notifications: сервер инициирует отправку данных (например, Firebase Cloud Messaging).

Выбор зависит от требований к latency, масштабируемости и согласованности данных.