O Que é o Azure Event Grid?

18/01/2025

O Azure Event Grid é um serviço de gerenciamento de eventos baseado no padrão pub/sub (publicação/assinatura). Ele conecta fontes de eventos (event sources) a manipuladores de eventos (event handlers) por meio de um intermediário confiável. Isso permite criar sistemas que reagem a mudanças em tempo real, sem necessidade de pooling ou verificações constantes.



O Event Grid não é apenas um serviço de fila; ele oferece suporte nativo a eventos de outros serviços da Azure e até a eventos personalizados de aplicações externas, proporcionando flexibilidade e performance.


Arquitetura do Event Grid

A arquitetura do Event Grid é composta por três elementos principais:

  1. Fontes de Eventos (Event Sources):

    • Representam os sistemas ou serviços que geram os eventos.
    • Exemplos na Azure:
      • Azure Storage: Eventos como criação ou exclusão de blobs.
      • Azure Resource Manager: Eventos relacionados à criação, exclusão ou alteração de recursos.
      • Azure Active Directory: Atribuição de funções (RBAC) ou criação de usuários.
    • Fontes externas também podem publicar eventos no Event Grid, utilizando chamadas HTTP.
  2. Event Grid:

    • Atua como um barramento de eventos, garantindo a entrega e o roteamento para os manipuladores apropriados.
    • Características principais:
      • Entrega baseada em push (via HTTP/S).
      • Filtros por tipo de evento ou propriedades específicas.
      • Alta confiabilidade, com até 24 horas de retenção de eventos e reentrega em caso de falhas temporárias.
  3. Manipuladores de Eventos (Event Handlers):

    • São os destinos onde os eventos são processados. Alguns exemplos incluem:
      • Azure Functions: Execução de código serverless para processar eventos.
      • Logic Apps: Automatização de fluxos de trabalho baseados em eventos.
      • Service Bus: Integração com sistemas legados ou filas distribuídas.
      • HTTP Endpoints: APIs ou serviços externos que recebem eventos diretamente.

Como Funciona o Azure Event Grid?

  1. Publicação de Eventos:

    • Um evento é gerado por uma fonte, como a criação de um blob no Azure Storage ou a exclusão de uma máquina virtual no Azure Resource Manager.
    • O evento é enviado ao Event Grid por meio de uma integração nativa ou via chamada HTTP (para eventos personalizados).
  2. Distribuição de Eventos:

    • O Event Grid roteia os eventos para os manipuladores configurados, com base nas assinaturas (subscriptions) definidas. Cada assinatura especifica:
      • O tipo de evento que será processado (por exemplo, Microsoft.Storage.BlobCreated).
      • Filtros opcionais para personalizar ainda mais o roteamento.
  3. Processamento de Eventos:

    • O manipulador recebe o evento e executa a lógica necessária. Por exemplo:
      • Uma Azure Function pode registrar um evento em um banco de dados.
      • Um Logic App pode disparar um fluxo de trabalho para notificar equipes.

Vantagens Técnicas do Event Grid

  1. Alta Escalabilidade:

    • Processa milhões de eventos por segundo com latência mínima.
  2. Confiabilidade:

    • Garante a entrega do evento com tentativa de reenvio (retry) em caso de falhas temporárias.
  3. Suporte Nativo e Personalizado:

    • Integra-se com diversos serviços da Azure e permite publicação de eventos de fontes externas.
  4. Filtro Avançado:

    • Roteamento inteligente com base em propriedades específicas do evento, como cabeçalhos ou dados de payload.
  5. Pay-As-You-Go:

    • Custo eficiente, com cobrança baseada no número de eventos processados.

Exemplo de Uso Prático

Imagine uma aplicação que precisa reagir a eventos de criação de arquivos em um Azure Blob Storage e executar os seguintes passos:

  1. Registrar o arquivo em um banco de dados.
  2. Notificar um serviço externo via API.
  3. Arquivar o arquivo processado em outra conta de armazenamento.

Com o Event Grid, isso pode ser configurado assim:

  • O Azure Blob Storage publica eventos de criação de blobs no Event Grid.
  • Uma Azure Function assinada recebe o evento e registra os dados do blob no banco.
  • Uma Logic App também assinada envia notificações ao serviço externo.
  • Por fim, um Service Bus é usado para encaminhar eventos a sistemas legados.

O Azure Event Grid é uma ferramenta essencial para arquiteturas modernas, permitindo criar sistemas reativos, escaláveis e robustos. Ele elimina a complexidade de gerenciar eventos manualmente e se integra perfeitamente ao ecossistema Azure e a soluções externas.

Se você está construindo sistemas orientados a eventos, o Event Grid é um caminho natural para simplificar sua arquitetura e aumentar a eficiência operacional. Agora é sua vez: já utiliza o Event Grid em suas soluções? Compartilhe nos comentários!