Construindo uma Aplicação com Comunicação em Tempo Real Usando Fastify, RabbitMQ e Arquitetura Distribuída

Há cerca de três meses, participei de um desafio que me deixou bastante empolgada.
Por essa razão resolvi compartilhar como foi o processo de desenvolvimento, as escolhas técnicas que fiz e alguns aprendizados ao longo do caminho.

Aceito sugestões de …


This content originally appeared on DEV Community and was authored by Layssa Lima

Há cerca de três meses, participei de um desafio que me deixou bastante empolgada.
Por essa razão resolvi compartilhar como foi o processo de desenvolvimento, as escolhas técnicas que fiz e alguns aprendizados ao longo do caminho.

Aceito sugestões de melhorias.

⚠️ Spoiler: o projeto está apenas no começo, ainda há muito para ser desenvolvido, inicialmente estou compartilhando apenas o que foi feito em um desafio entre 3 e 4 dias

Repositório: Dwitch

O DESAFIO

O objetivo era criar uma aplicação completa:

  • Frontend e backend
  • Autenticação
  • Persistência de dados
  • Observabilidade
  • Mensageria

Tudo isso em uma arquitetura distribuída, com documentação do projeto.

Ponto de partida

O primeiro passo foi decidir qual aplicação desenvolver. Como eu já tinha interesse em me aprofundar no tema, optei por criar uma aplicação de transmissão ao vivo, mesmo sabendo que o tempo disponível não permitiria implementar todas as funcionalidades reais desse tipo de sistema.

Arquitetura

O passo seguinte foi definir a arquitetura.
Comecei pensando nas funcionalidades que o sistema deveria ter, organizando-as em módulos e alinhando tudo aos requisitos do desafio.

Diagrama da arquitetura do projeto

No desenho, temos um banco PostgreSQL centralizando os dados do sistema e quatro módulos principais:

  • Auth - autenticação.
  • Channels - CRUD de canais.
  • User - CRUD de usuários.
  • Broadcast - comunicação das transmissões.

Nesse estágio inicial, optei por simular a comunicação em tempo real por meio de mensagens — algo que é bem diferente de uma transmissão ao vivo real, mas que atendia ao escopo e tempo do desafio.

Sobre os módulos

Os módulos foram implementados com Fastify, cuja sintaxe é bastante familiar para quem já trabalhou com Express.
Para mensageria, utilizei RabbitMQ.

Modelagem dos dados

Após visualizar a aplicação e a arquitetura, passei para a modelagem do banco de dados.

Modelagem das tabelas do banco da aplicação
Nessa modelagem, estabeleci:

  • A relação entre usuários e canais
  • A relação entre canais e transmissões
  • O vínculo das transmissões com seus respectivos logs

Dessa forma, é possível acompanhar o status de cada transmissão e manter um histórico de alterações.

Ferramentas utilizadas nessa etapa

  • Diagramas: Draw.io
  • APIs: Fastify
  • Mensageria: RabbitMQ
  • Protocolos: HTTP e WebSocket

💡 Próximos passos: no próximo post, quero detalhar como implementei cada módulo e como configurei a comunicação entre eles.

Se tiverem dúvidas ou sugestões de melhorias, deixem nos comentários!


This content originally appeared on DEV Community and was authored by Layssa Lima


Print Share Comment Cite Upload Translate Updates
APA

Layssa Lima | Sciencx (2025-08-07T22:33:38+00:00) Construindo uma Aplicação com Comunicação em Tempo Real Usando Fastify, RabbitMQ e Arquitetura Distribuída. Retrieved from https://www.scien.cx/2025/08/07/construindo-uma-aplicacao-com-comunicacao-em-tempo-real-usando-fastify-rabbitmq-e-arquitetura-distribuida/

MLA
" » Construindo uma Aplicação com Comunicação em Tempo Real Usando Fastify, RabbitMQ e Arquitetura Distribuída." Layssa Lima | Sciencx - Thursday August 7, 2025, https://www.scien.cx/2025/08/07/construindo-uma-aplicacao-com-comunicacao-em-tempo-real-usando-fastify-rabbitmq-e-arquitetura-distribuida/
HARVARD
Layssa Lima | Sciencx Thursday August 7, 2025 » Construindo uma Aplicação com Comunicação em Tempo Real Usando Fastify, RabbitMQ e Arquitetura Distribuída., viewed ,<https://www.scien.cx/2025/08/07/construindo-uma-aplicacao-com-comunicacao-em-tempo-real-usando-fastify-rabbitmq-e-arquitetura-distribuida/>
VANCOUVER
Layssa Lima | Sciencx - » Construindo uma Aplicação com Comunicação em Tempo Real Usando Fastify, RabbitMQ e Arquitetura Distribuída. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/08/07/construindo-uma-aplicacao-com-comunicacao-em-tempo-real-usando-fastify-rabbitmq-e-arquitetura-distribuida/
CHICAGO
" » Construindo uma Aplicação com Comunicação em Tempo Real Usando Fastify, RabbitMQ e Arquitetura Distribuída." Layssa Lima | Sciencx - Accessed . https://www.scien.cx/2025/08/07/construindo-uma-aplicacao-com-comunicacao-em-tempo-real-usando-fastify-rabbitmq-e-arquitetura-distribuida/
IEEE
" » Construindo uma Aplicação com Comunicação em Tempo Real Usando Fastify, RabbitMQ e Arquitetura Distribuída." Layssa Lima | Sciencx [Online]. Available: https://www.scien.cx/2025/08/07/construindo-uma-aplicacao-com-comunicacao-em-tempo-real-usando-fastify-rabbitmq-e-arquitetura-distribuida/. [Accessed: ]
rf:citation
» Construindo uma Aplicação com Comunicação em Tempo Real Usando Fastify, RabbitMQ e Arquitetura Distribuída | Layssa Lima | Sciencx | https://www.scien.cx/2025/08/07/construindo-uma-aplicacao-com-comunicacao-em-tempo-real-usando-fastify-rabbitmq-e-arquitetura-distribuida/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.