8.1 Асинхронное взаимодействие

8.2 Обоснование выбора технологии

Из лекции: RabbitMQ — отличное решение, если вы обрабатываете относительно немного сообщений, они небольшие и вам не важен порядок их доставки.

8.3 AsyncAPI yaml

Была написана спецификация AsyncAPI версии 2.3.0 для определения интерфейса сервиса электронных уведомлений медицинского центра, который использует RabbitMQ для обмена сообщениями (Листинг 8.1).

Листинг 8.1 - AsyncAPI yaml

asyncapi: 2.3.0
info:
  title: Сервис электронных уведомлений (писем) медицинского центра
  version: 1.0.0
  description: AsyncAPI спецификация для сервиса электронных уведомлений в частном медицинском центре, использующего RabbitMQ.

channels:
  patientNotifications:
    subscribe:
      summary: Канал для отправки электронных уведомлений пациентам
      operationId: sendPatientEmail
      message:
        name: patientNotification
        payload:
          type: object
          properties:
            patientId:
              type: string
              format: uuid
              description: Идентификатор пациента в формате UUID
            subject:
              type: string
              description: Тема электронного уведомления
            body:
              type: string
              description: Содержание электронного уведомления
      bindings:
        amqp:
          contentType: "application/json"