ADPDPJ Flashcards

Flashcards sobre Arquitetura de Desenvolvimento da Plataforma Digital do Poder Judiciário - PDPJ-Br

1
Q

O que é mensageria?

A

É uma abordagem de desenvolvimento usando mensagem para estabelecer comunicação / integração síncrona ou assíncrona entre aplicações, usando um Message Broker ou um MOM para tal.
#Mensageria

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

O que são Message Broker ou um MOM?

A

Message Broker ou MOM (Message Oriented Middleware) nada mais é que um servidor (infraestrutura) idealizado únicamente para processar e suportar o envio/recebimento, redirecionamento e também a monitoria das mensagens compartilhadas entre os sistemas integrados por mensagem.
#Mensageria

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quais são os principais protocolos utilizados na mensageria?

A

JMS, AMQP, MQTT, STOMP, MSMQ
#Mensageria

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

O que é JMS?

A

O Java Message Service (JMS) Como o próprio nome diz, é um protocolo para mensageria voltado para integrações entre serviços ou componentes desenvolvidos em Java. Muito usado também em Application Servers onde aplicações corporativas desenvolvidas em Java são implantadas.
#Mensageria #JMS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que é AMQP?

A

O Advanced Message Queuing Protocol (AMQP) é um protocolo de mensageria mais atual e indiferente da linguagem de programação usada no desenvolvimento de aplicações. Se a sua linguagem favorita para desenvolvimento tem suporte a esse protocolo, suas aplicações conseguem se comunicar através de um Broker que usa o mesmo protocolo.
#Mensageria #AMQP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que é MQTT?

A

O Message Queue Telemetry Transport (MQTT) é um protocolo de mensageria muito utilizado para comunicação de dispositivos inteligentes (IoT). Com esse protocolo, fica mais fácil a implementação de objetos se comunicarem em rede e enviarem mensagens, seja entre objetos ou mesmo para outros sistemas que precisam de notificações desses dispositivos.
#Mensageria #MQTT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

O que é STOMP?

A

O Simple/Streaming Text Oriented Messaging Protocol (STOMP) é um protocolo de mensageria mais voltado para Streaming de dados, onde os mesmos são serializados e quando a informação precisa ser entregue praticamente em tempo real para os consumidores.
#Mensageria #STOMP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

O que é MSMQ?

A

O Microsoft Message Queuing (MSMQ) é um protocolo de mensageria, como o nome diz, é uma implementação Microsoft, bastante usado em aplicações desenvolvidas em linguagem proprietária da empresa, teve seu ápice de uso em versões NT do Windows, além da versão 2016 Server e com suporte no Windows 10. Uso muito específico da plataforma Microsoft.
#Mensageria #MSMQ

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quais são os principais Brokers do mercado?

A

RabbitMQ, Apache Kafka, ActiveMQ, Amazon SQS, Microsoft Azure Service BUS, Redis, IBM MQ Series, NATS.
#Mensageria #Brokers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quais são os modelos usados em mensageria?

A

point-to-point, publish/subscribe, Dead Letter Queue, Event Source
#Mensageria

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Como funciona o modelo de Fila (Point-to-Point) em mensageria?

A

No modelo de fila, uma mensagem é enviada para uma fila e pode ser consumida por apenas um consumidor. Uma vez que a mensagem é retirada da fila, ela não está mais disponível para outros consumidores.
#Mensageria

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Como funciona o modelo de Publicação/Assinatura (Publish/Subscribe) em mensageria?

A

No modelo pub/sub, a mensagem é enviada para um tópico e todos os consumidores que se inscreveram no tópico recebem a mensagem. Isso permite que múltiplos consumidores recebam as mesmas mensagens simultaneamente.
#Mensageria

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Como funciona o modelo de Dead Letter Queue em mensageria?

A

Nesse modelo, quando não é possível entregar uma mensagem, é uma opção ter uma “fila” onde podemos enfileirar esses itens para que alguém tome uma ação, visto que a mesma não foi consumida e nem entregue a ninguém.
#Mensageria

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Como funciona o modelo de Event Sourcing em mensageria?

A

O Event Sourcing usa mensageria, para que um evento propague dados e seja possível compartilhar informações entre mais de um microserviço, sem perder a consistência. Também muito atrelado ao padrão CQRS, ajuda ainda mais no baixo acoplamento de sistemas e microserviços.
#Mensageria

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

O que é um callback?

A

Um callback é uma função passada como argumento para outra função, que será executada posteriormente, geralmente após a conclusão de uma tarefa ou evento.
#Programação #Callback

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

O que são webhooks?

A

Um webhook é um mecanismo que permite que um sistema envie dados automaticamente para outro sistema quando um evento específico ocorre. É frequentemente usado para integrações entre aplicações.
#Webhooks

17
Q

Quais são os principais componentes de um webhook?

A
  • Origem (Source): O sistema que dispara o evento.
  • Destino (Endpoint): URL que recebe as informações.
  • Payload: Dados enviados no corpo da requisição.
  • Evento: Ação que dispara o webhook (ex.: nova compra, novo comentário).
    #Webhooks
18
Q

Quais métodos HTTP são usados em webhooks?

A

Os webhooks geralmente usam os métodos:
- POST: Para enviar dados estruturados (como JSON) no corpo da requisição.
- GET (menos comum): Para notificações simples sem payload.
#Webhooks

19
Q

Como proteger um webhook?

A
  • Assinaturas e Tokens: Exigir uma chave secreta no cabeçalho ou no payload.
  • HTTPS: Garantir que os dados sejam transmitidos por conexões seguras.
  • Validação de IP: Permitir requisições apenas de IPs confiáveis.
  • Limitação de Taxa: Prevenir abuso ou ataques DDoS.
    #Webhooks
20
Q

O que fazer se um webhook falhar?

A
  • Repetir Tentativas (Retries): Configurar o sistema para reprocessar automaticamente.
  • Logs: Armazenar informações detalhadas sobre falhas para análise posterior.
  • Fallback: Implementar mecanismos alternativos, como filas de mensagens.
    #Webhooks
21
Q

Como testar um webhook?

A
  • Use ferramentas como ngrok para criar endpoints temporários.
  • Utilize serviços de webhook testing (ex.: Webhook.site).
  • Simule eventos no sistema de origem e analise os dados recebidos.
    #Webhooks
22
Q

Qual a diferença entre webhooks públicos e privados?

A

Webhooks públicos são endpoints acessíveis por qualquer pessoa com a URL correspondente, já webhooks privados são endpoints protegidos por medidas adicionais, como autenticação, restrições de IP ou uso de redes internas (VPNs).
#Webhooks

23
Q

O que são eventos negociais?

A

Eventos negociais são mensagens que podem ser relevantes para outros sistemas, e que são comunicadas de forma assíncrona por meio de chamadas de webhook
#Webhooks #EventoNegocial

24
Q

O que é RabbitMQ?

A

RabbitMQ é um sistema de mensageria baseado em AMQP (Advanced Message Queuing Protocol). Ele permite que diferentes aplicações se comuniquem enviando e recebendo mensagens de forma assíncrona.
#RabbitMQ

24
Q

O que são apis reversas?

A

APIs reversas, também conhecidas como reverse APIs ou webhooks inversos, são uma abordagem onde o servidor faz uma solicitação para o cliente em vez de o cliente fazer solicitações ao servidor.
#Webhooks #EventoNegocial

25
Q

Quais são os principais componentes do RabbitMQ?

A
  • Producer: Envia mensagens para o broker.
  • Exchange: Roteia mensagens para as filas (queues).
  • Queue: Armazena mensagens até que sejam consumidas.
  • Consumer: Recebe mensagens das filas.
  • Broker: O servidor RabbitMQ que gerencia exchanges, filas e mensagens.
    #RabbitMQ
26
Q

Quais são os tipos de exchanges no RabbitMQ?

A
  • Direct: Envia mensagens para filas específicas com base em uma chave de roteamento.
  • Fanout: Envia mensagens para todas as filas associadas.
  • Topic: Roteia mensagens com base em padrões na chave de roteamento.
  • Headers: Roteia mensagens com base nos cabeçalhos das mensagens.
    #RabbitMQ
27
Q

O que é uma bind?

A

Bind é a relação entre uma fila e uma exchange.
#RabbitMQ

28
Q

Como funciona a comunicação entre producer e consumer no RabbitMQ?

A

1- O producer envia mensagens para uma exchange.
2- A exchange roteia as mensagens para as queues com base em regras definidas.
3- O consumer consome mensagens diretamente das queues.
#RabbitMQ

29
Q

Como garantir a entrega de mensagens no RabbitMQ?

A
  • Mensagens Persistentes: Configurar as mensagens como persistentes para sobreviver a reinicializações.
  • Confirmação de Mensagem (ACK): O consumer confirma o recebimento de mensagens.
  • Retry e Dead Letter Queues: Mensagens não entregues podem ser reencaminhadas ou armazenadas em filas específicas.
    #RabbitMQ
30
Q

Qual é a diferença entre Prefetch e ACK?

A
  • Prefetch: Limita o número de mensagens que um consumer pode processar simultaneamente.
  • ACK (Acknowledgment): Indica que uma mensagem foi processada com sucesso pelo consumer.
    #RabbitMQ