José Roberto Araújo
banner
jrobertofaraujo.bsky.social
José Roberto Araújo
@jrobertofaraujo.bsky.social
⭐️ https://www.emergingcode.io co-founder
🎯 Escrevo sobre arquitetura de software e sistemas distribuídos
🎯 Faço alguns vídeos para meu canal no Youtube

Todas as opiniões são minhas | All opinions are my own
O padrão Outbox é normalmente usado em sistemas distribuídos onde vários componentes estão se comunicando entre si de forma assíncrona. Nesses sistemas, é importante garantir que as mensagens sejam entregues de forma confiável, mesmo se um ou mais componentes falharem.
September 27, 2024 at 12:00 PM
O componente Background Service consome os dados da tabela Outbox e garante que essas mensagens sejam enviadas com êxito, mesmo que o message broker esteja offline no momento do envio da mensagem.
September 27, 2024 at 12:00 PM
O padrão Outbox é um padrão de mensagens usado para lidar com a comunicação assíncrona entre diferentes componentes de um sistema. Envolve o uso de uma tabela chamada Outbox responsável por armazenar as mensagens que precisam ser enviadas para outros componentes.
September 27, 2024 at 12:00 PM
E se algo der errado? E ocorrer uma falha durante a publicação da mensagem?
September 27, 2024 at 12:00 PM
Essa comunicação pode ocorrer de forma assíncrona, ou seja, um componente envia uma mensagem para outro componente, mas não espera uma resposta. Um padrão comumente usado para lidar com a comunicação assíncrona é o padrão Outbox.
September 27, 2024 at 12:00 PM
Em aplicativos de software modernos, é comum ter vários componentes se comunicando entre si, no mesmo aplicativo ou em vários aplicativos.
September 27, 2024 at 12:00 PM
{ Event-Driven Architecture: Outbox Pattern }

Em arquitetura de sistemas distribuídos, o grande desafio é garantir a entrega de mensagens. Eu vou te explicar um Padrão arquitetural que vai te ajudar a resolver esse desafio.
September 27, 2024 at 12:00 PM
Dessa forma, Ter 1 API de Experiência vai permitir q a plataforma tenha capacidade de centralizar as lógicas de orquestração, composição e fluxo de jornada do cliente (end-user) em 1 componente dentro da plataforma.

Assim, BFFs só precisam pedir e retornar os dados necessários.
September 23, 2024 at 1:54 PM
Através desse contexto, eu espero que você tenha conseguido compreender a importância e o benefício de se ter uma API de Experiência.
September 23, 2024 at 1:54 PM
Entender a Customer Journey (Jornada do Cliente), te ajuda também a perceber porque é importante levar em consideração APIs de Experiência.

Caso contrário, vamos ter que lidar com a complexidade em vários outros componentes espalhados em uma arquitetura MSA.
September 23, 2024 at 1:54 PM
Aqui eu explico um pouco dessas nuances!
September 23, 2024 at 1:54 PM
O desenvolvimento de APIs ñ se resume apenas em expor, publicamente, capacidades de negócio.

APIs são compostas por várias experiências e capacidades. E p abraçar essas nuances, é necessário entender o Customer Journey.

Ter APIs de Experiência, pode te ajudar aqui!
September 23, 2024 at 1:54 PM
Nesse contexto, eu trago uma explicação sobre cada uma das classificações e seus usos.
September 23, 2024 at 1:54 PM
Single APIs e BFFs são abordagens que sempre trouxeram e vão continuar diferenciando o desenvolvimento de APIs.

Mas você sabia como classificar essas APIs?
September 23, 2024 at 1:54 PM
Se não bastasse ter segregado os BFFs por times diferentes, agora é que eu não estou entendendo mais nada!

Porque raios eu tenho que separar os BFFs por tipos de dispositivos distintos?

Abaixo eu explico!
September 23, 2024 at 1:54 PM
Há ainda outro modelo organizacional, mas não só, como também necessidade de mercado, onde trago uma abordagem que traz benefícios quando precisamos atender nichos de dispositivos específicos.
September 23, 2024 at 1:54 PM
Se o uso de BFF traz benefícios sobre uma única API, porque eu devo segregar isso em times distintos?

Abaixo trago uma síntese, sobre o porque eu vejo vantagem nesse modelo organizacional.
September 23, 2024 at 1:54 PM
Abaixo apresento um modelo organizacional do ponto de vista evolutivo e de manutenção dos BFFs.
September 23, 2024 at 1:54 PM
Aqui eu apresento alguns benefícios sobre a aplicação da abordagem arquitetural BFF 👇🏻
September 23, 2024 at 1:54 PM
Na busca resolver a problemática de escala apresentada pelo uso de uma única API, o que temos?

É aqui em o BFF (Backend For Frontend) começa a entrar no jogo 💡
September 23, 2024 at 1:54 PM
Muitas plataformas rodam com essa blue-print de arquitetura.

Mas saiba o que isso pode acarretar 👇🏻
September 23, 2024 at 1:54 PM
Inicialmente, você já deve ter trabalhado o ainda deve trabalhar com uma arquitetura MSA com uma única API atendendo vários tipos de clientes distintos.

Conforme apresentado abaixo 👇🏻
September 23, 2024 at 1:54 PM
Criar APIs ñ é 1 atividade exclusivamente de sistemas distribuídos ou de arquiteturas de Microsserviços. Há sistemas atualmente q tem APIs públicas e q rodam sobre 1 monolito.

O fato é q em 1 MSA (Microservice Architecture) APIs torna-se algo ainda mais complexo.
September 23, 2024 at 1:54 PM
{ System Design }

Desenvolver APIs tornou-se essencial para a sobrevivência dos sistemas e aumento de suas capacidade de integração com outras plataformas.

Você que já conhece sobre APIs já tinha ouvido falar em BFFs? E sabe as nuances de quando usá-lo?
September 23, 2024 at 1:54 PM
Bluesky now has over 10 million users, and I was #291,631!
September 17, 2024 at 10:47 AM