replication.rq

replication.rq - Топик запросов регистрации подписки репликации у поставщика

Структура сообщения

subscriptionRegistrationRequestMessage:
  description: Запрос регистрации подписки репликации у поставщика
  schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
  bindings:
    kafka:
      key:
        type: string
        format: uuid
        description: Уникальный идентификатор подзапроса
  headers:
    type: object
    properties:
      AGENT_CONSUMER_ID:
        description: Идентификатор агента потребителя
        type: string
  payload:
    $ref: '#/components/schemas/subscriptionRegistrationRequest'
  examples:
    - name: simple
      headers:
        AGENT_CONSUMER_ID: agent-fias
      payload:
        requestId: 00000000-0000-0000-0000-000000000000
        subRequestId:
          string: 00000000-0000-0000-0000-000000000000
        subscriptionId: 00000000-0000-0000-0000-000000000000
        datamartMnemonic: fias
        sql:
          string: select * from v1_addrobj
        queries:
          - id: 00000000-0000-0000-0000-000000000000
            sql: select 1
            type: DATA
        isReplication:
          boolean: true
    - name: multiple
      headers:
        AGENT_CONSUMER_ID: agent-fias
      payload:
        requestId: 00000000-0000-0000-0000-000000000000
        subRequestId:
          string: 00000000-0000-0000-0000-000000000000
        subscriptionId: 00000000-0000-0000-0000-000000000000
        datamartMnemonic: fias
        sql:
          string: select * from v1_addrobj; select * from v1_house
        isReplication:
          boolean: true

Avro-схема сообщения

subscriptionRegistrationRequest:
  schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
  type: record
  name: SubscriptionRegistrationRequest
  namespace: ru.rtlabs.common.replication.subscription
  fields:
    - name: requestId
      description: Уникальный идентификатор запроса регистрации
      type:
        type: string
        logicalType: uuid
    - name: subRequestId
      description: Уникальный идентификатор подзапроса, идентифицирует одно взаимодействие типа запрос-ответ
      default: null
      type:
        - 'null'
        - type: string
          logicalType: uuid
    - name: subscriptionId
      description: Уникальный идентификатор подписки
      type:
        type: string
        logicalType: uuid
    - name: datamartMnemonic
      description: Мнемоника витрины, к которой выполняется запрос
      type: string
    - name: sql
      description: sql запрос текущей подписки для старых витрин тут может приходить массив.
      default: null
      type:
        - 'null'
        - string
    - name: isReplication
      description: \version 1.1\ Признак типа подписки true - подписка на репликацию, false - подписка на уведомления
      default: null
      type:
        - 'null'
        - boolean