Antes de escrever código, precisamos entender o problema. Nesta palestra, vamos aprender uma abordagem prática para pensar em System Design, passando por requisitos, APIs, bancos de dados, autenticação, filas, escalabilidade e decisões arquiteturais. A ideia é mostrar como transformar um problema de negócio em uma arquitetura de software antes de começar a implementar.
Muitos desenvolvedores começam um projeto pensando diretamente em código: qual framework usar, quais endpoints criar ou quais tabelas montar. Mas antes dessas decisões existe uma etapa fundamental: entender o problema e projetar uma solução.
A partir de um problema prático, vamos construir a solução passo a passo, discutindo:
• Processo de desenvolvimento de Software: • Como entender e decompor um problema de negócio • Como identificar requisitos funcionais e não funcionais • Como definir os principais componentes de um sistema • Como pensar no design das APIs • Como escolher e modelar o banco de dados • Como estruturar autenticação e autorização • Quando utilizar cache, filas e processamento assíncrono • Como pensar em escalabilidade e performance • Como considerar segurança, observabilidade e confiabilidade • Como avaliar trade-offs entre diferentes soluções
O objetivo não é apresentar uma arquitetura perfeita ou uma receita pronta. É mostrar um processo de raciocínio que pode ser aplicado a diferentes tipos de sistemas.
Ao final, os participantes terão uma visão mais clara sobre como sair de um problema de negócio e chegar a uma arquitetura técnica antes de escrever a primeira linha de código.