Um rápido vislumbre das diferentes maneiras de conectar 2 componentes

Código Épico

Um rápido vislumbre das diferentes maneiras de conectar 2 componentes

Gabriel Nascimento
Escrito por Gabriel Nascimento em 21 de dezembro de 2022

Geralmente, como você pode fazer um componente iniciar outro?

lista ilustrada das diferente maneiras de conectar 2 componentes

Method Call (Chamada de Método)

Se o código do aplicativo for simples, tudo em um só lugar, é possível usar as chamadas de método.

class ComponentA {
    public void execute() {
        ComponentB componentB = new ComponentB();
        componentB.execute();
    }
}

Request – Response (Solicitação – Resposta)

Uma abordagem comum é quando um serviço envia uma solicitação para outro serviço. A fim de pedir uma informação ou delegar a execução de uma tarefa, e espera até receber uma resposta.

Cada um desses componentes pode ser uma API, função lambda, etc.

Events (Eventos)

Em sistemas orientados a eventos, os componentes não conversão diretamente uns com os outros.

Ao invés disso, eles emitem eventos para avisar que algo aconteceu…

Então outros componentes podem ouvir esses eventos e reagir de acordo.

Data Storage (Armazenamento de Dados)

Em vez de ter um componente falando com outro, as informações podem ser armazenadas em algum lugar como:

  • Um banco de dados;
  • Ou object storage.

Assim outros componentes são livres para extrair e usar esses dados.

Queue (Fila)

O componente envia uma tarefa para a fila. Depois essa fila delega a tarefa para um executor que realiza o trabalho.

Esta operação pode ser feita de forma síncrona ou assíncrona, enquanto executa essas tarefas de forma paralela ou concorrente.

Lambda

Semelhante ao request-response. Mas em vez de enviar para um componente específico, a solicitação é enviada para uma função genérica, única, lambda.

Portanto essa função atua como um único ponto de entrada e decide para onde a solicitação deve ser encaminhada.

Misturando tudo

Claro, você também pode misturar as formas de conexão (uma abordagem híbrida), como por exemplo:

  • Um sistema de eventos pode usar uma fila para acompanhar e distribuir os eventos emitidos;
  • Ter uma função lambda na frente de uma fila. Assim qualquer componente pode colocar uma tarefa na fila, apenas chamando a função.
  • Ou, uma função lambda que ouve, ou verifica periodicamente, os eventos e notifica a etapa seguinte.

Hey,

o que você achou deste conteúdo? Conte nos comentários.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *