Glossário de Desenvolvimento Backend

100 termos de backend explicados em português — com código executável em quatro linguagens, diagramas de arquitetura e tabelas comparativas. Novos termos são traduzidos continuamente; o glossário completo em inglês tem 100 termos.

Arquitetura em Nuvem & Modelos de Hospedagem

Armazenamento de Objetos Gerenciado & Entrega de Assets O armazenamento de objetos gerenciado é um serviço de BaaS que guarda arquivos enviados pelos SDKs e os serve por URLs com CDN e controle de acesso. Arquitetura Desacoplada (Backend Headless) Arquitetura desacoplada é um design em que frontend e backend são sistemas separados que se comunicam apenas por APIs. Arquitetura Serverless Arquitetura serverless é um modelo de execução em nuvem no qual o provedor roda seu código sob demanda — você nunca provisiona nem gerencia servidores. BaaS Open-Source vs. BaaS Proprietário Gerenciado BaaS open-source é uma plataforma de backend cujo núcleo você pode auto-hospedar; um BaaS proprietário roda apenas na infraestrutura do fornecedor. BaaS vs. Construir um Backend Próprio BaaS vs. backend próprio é uma decisão de construir ou comprar: adotar um backend pronto atrás de um SDK, ou projetar e operar o seu. BaaS vs. Serverless Serverless é um modelo de execução em que o provedor roda o código sob demanda; BaaS é um modelo serverless que entrega o backend pronto. CDN (Content Delivery Network) Uma CDN é uma rede de servidores distribuídos que mantém conteúdo em cache perto dos usuários, para páginas e arquivos carregarem rápido em qualquer lugar. CI/CD (Integração & Entrega Contínuas) CI/CD é uma prática que automatiza build, testes e lançamento de código, para que cada mudança vá do commit à produção em pequenos passos. Código Boilerplate de Backend Código boilerplate de backend é uma massa de encanamento repetitivo do lado do servidor — auth, CRUD, config — escrita do mesmo jeito em projeto após projeto. Conteinerização Conteinerização é uma forma de empacotar uma aplicação com todas as suas dependências em uma unidade isolada que roda de forma idêntica em qualquer host. Desenvolvimento No-Ops (Zero-Ops) No-Ops é um modelo operacional em que a plataforma automatiza tanto o trabalho de infraestrutura que os desenvolvedores entregam código sem equipe de operações. Escalabilidade de Backends de Aplicações Modernas Escalar um backend de aplicação moderna é o processo de adicionar capacidade — computação, banco de dados, entrega — para que o tráfego crescente siga rápido. Hospedagem Multi-Tenant na Nuvem Hospedagem multi-tenant na nuvem é um modelo em que um conjunto de servidores e software atende muitos clientes, com isolamento lógico entre os tenants. IaaS vs. PaaS vs. CaaS vs. FaaS vs. BaaS vs. mBaaS vs. SaaS Os modelos de serviço em nuvem são uma escada — IaaS, CaaS, PaaS, FaaS, BaaS, mBaaS, SaaS — ordenada por quanto o provedor executa por você. Infraestrutura como Serviço (IaaS) IaaS é um modelo de nuvem que aluga recursos fundamentais de computação — máquinas virtuais, armazenamento, rede — sob demanda, com cobrança pelo uso. Isolamento entre Staging e Produção em BaaS O isolamento entre staging e produção é uma prática de rodar apps, bancos e chaves separados por ambiente para que testes nunca toquem dados reais. Kubernetes Kubernetes é uma plataforma open-source que automatiza o deploy, a escalabilidade e a operação de aplicações conteinerizadas em muitas máquinas. mBaaS vs. BaaS mBaaS é a forma mobile-first de Backend as a Service; BaaS é o modelo mais amplo, que atende clientes mobile, web e servidores igualmente. Microsserviços vs. Monolito Um monolito é uma aplicação única com um só deploy; microsserviços a dividem em serviços pequenos, com deploys independentes, que se comunicam via APIs. PaaS vs. BaaS PaaS é um modelo de nuvem em que o provedor executa a plataforma onde seu código é implantado, enquanto você ainda escreve e mantém a aplicação. Vendor Lock-In na Nuvem Vendor lock-in na nuvem é uma dependência de um único provedor tão profunda que trocar custaria mais em dinheiro, tempo e risco do que ficar.

Bancos de Dados & Escalabilidade

APIs de Banco de Dados Geradas Automaticamente (GraphQL e REST) Uma API de banco de dados gerada automaticamente é uma interface criada por uma ferramenta que lê seu schema e expõe endpoints REST ou GraphQL. Arquitetura de Banco de Dados Multi-Tenant Arquitetura de banco de dados multi-tenant é um design para armazenar muitos clientes em uma camada de dados, isolados por linha, schema ou banco separado. Camada de Abstração de Banco de Dados Uma camada de abstração de banco de dados é uma API entre o seu código e o banco que esconde qual engine, dialeto e driver estão por baixo. Campos Pointer vs. Relation na Modelagem em BaaS Um campo pointer é uma referência tipada a um único objeto; um campo relation é um join gerenciado que liga muitos objetos a muitos. Consultas de Banco de Dados Uma consulta de banco de dados é um pedido estruturado por dados — filtrar, ordenar, projetar, paginar — numa linguagem que o motor planeja e executa. Consultas Geoespaciais & Indexação por Localização Uma consulta geoespacial é uma busca no banco que filtra e ordena registros por localização — perto de um ponto, dentro de um raio ou dentro de uma área. Consultas Relacionais (Joins) em Bancos de Documentos Uma consulta relacional em banco de documentos é um join feito com referências e lookups em vez de chaves estrangeiras — ou evitado ao embutir os dados. Gerenciamento Visual de Banco de Dados (Interfaces tipo Planilha) O gerenciamento visual de banco de dados é uma forma de trabalhar com dados por interface gráfica — grids, formulários, filtros — em vez de queries brutas. Índice de Banco de Dados Um índice de banco de dados é uma estrutura de busca ordenada que permite à engine encontrar as linhas certas diretamente, em vez de varrer a tabela inteira. Isolamento de Tenants em Bancos Compartilhados Isolamento de tenants é uma disciplina de muros dentro de sistemas compartilhados — controles que mantêm cada tenant selado em relação a todos os outros. Modelagem de Dados A modelagem de dados é o processo de mapear entidades, atributos e relacionamentos antes de decidir como o banco de dados vai armazená-los. NoSQL vs. SQL Um banco SQL é um armazenamento relacional com tabelas fixas e joins; NoSQL é um guarda-chuva de modelos flexíveis feitos para escalar horizontalmente. Operações CRUD CRUD é uma sigla para criar, ler, atualizar e excluir — as quatro operações básicas que todo armazenamento de dados persistente precisa suportar. Permissões em Nível de Classe (CLPs) & Segurança de Schema Uma permissão em nível de classe é uma regra no schema da classe que controla quais usuários ou papéis podem executar cada operação naquela classe. Point-in-Time Recovery (PITR) & Backups em BaaS Point-in-time recovery é um método de restauração que reaplica um log de mudanças sobre um backup base para reconstruir o banco em qualquer segundo. Pooling de Conexões em Bancos Gerenciados Serverless O pooling de conexões serverless é uma técnica que compartilha poucas conexões reais de banco entre muitas instâncias de função efêmeras. Replicação de Banco Multi-Região & Otimização de Latência A replicação multi-região é uma topologia de banco que copia dados entre regiões geográficas para reduzir latência de leitura e sobreviver a quedas. Schema de Banco de Dados Um schema de banco de dados é a planta que define como os dados se organizam — as classes, colunas, tipos e relacionamentos, mas não os dados em si. Segurança em Nível de Linha (RLS) Segurança em nível de linha é um mecanismo de banco de dados que filtra quais linhas cada usuário pode ver ou alterar, aplicado por políticas em toda consulta. Segurança na Camada de Dados vs. na Camada de Aplicação Segurança na camada de aplicação é um guarda no seu código; segurança na camada de dados é um guarda nos próprios dados — sistemas reais precisam das duas. Transações ACID Uma transação ACID é um grupo de operações de banco de dados que faz commit como uma única unidade — atômica, consistente, isolada e durável.

APIs & Tempo Real

API (Interface de Programação de Aplicações) Uma API é um conjunto de regras que permite a uma aplicação solicitar dados e funcionalidades de outra sem conhecer o código interno dela. API REST Uma API REST é uma API que segue o estilo arquitetural REST: recursos em URLs, requisições stateless e métodos HTTP padrão. Arquitetura de API Gateway Um API gateway é uma porta de entrada gerenciada para as suas APIs — um ponto único que roteia, autentica e aplica rate limit a cada requisição. CORS (Cross-Origin Resource Sharing) CORS é um mecanismo do navegador que permite ao servidor declarar quais outras origens podem chamá-lo, relaxando de propósito a política de same-origin. Endpoint de API Um endpoint de API é a URL específica onde uma API recebe requisições para um recurso — combinado com um método HTTP, define uma operação. GraphQL GraphQL é uma linguagem de consulta para APIs e um runtime server-side que retorna exatamente os campos que cada cliente pede em uma única requisição. GraphQL Subscriptions vs. WebSockets Uma GraphQL subscription é um stream de eventos tipado e definido pelo schema; um WebSocket é o transporte cru sobre o qual ela costuma rodar. GraphQL vs. REST REST é um estilo de API com vários endpoints fixos; GraphQL é uma linguagem de consulta em que o cliente pede a um único endpoint só os campos de que precisa. Live Queries em Tempo Real Uma live query é uma subscription a uma consulta de banco de dados — o servidor faz push de eventos de criação, atualização e exclusão conforme acontecem. Notificações Push vs. Live Queries Uma notificação push é um alerta entregue pelo sistema operacional que alcança apps fechados; uma live query transmite mudanças com o app aberto. O Problema de Consultas N+1 O problema de consultas N+1 é um padrão em que buscar N registros dispara uma query extra por registro — N+1 idas ao banco em vez de uma ou duas. Otimização de Payload de API Otimização de payload de API é a prática de encolher o que uma API envia — menos campos, páginas menores, compressão — para as respostas carregarem rápido. Overfetching & Underfetching Overfetching é o problema de API em que respostas carregam mais dados do que o cliente precisa; underfetching força requisições extras para obter o bastante. Padrão Pub/Sub (Publicação-Assinatura) Pub/sub é um padrão de mensageria em que publicadores enviam mensagens a tópicos em um broker, e cada assinante do tópico recebe uma cópia. Presença (Status Online) Presença é um sinal em tempo real que indica se um usuário está online, ausente ou offline, mantido fresco por conexões e heartbeats. Rate Limiting & Throttling de API Rate limiting é um controle que limita quantas requisições um cliente pode fazer por janela de tempo; throttling desacelera o excesso em vez de rejeitá-lo. SDK de Backend Um SDK de backend é um kit de bibliotecas e utilitários que permite que apps falem com um serviço de backend na própria linguagem, sem HTTP bruto. Sincronização de Dados Offline-First A sincronização offline-first é uma arquitetura em que o app lê e escreve primeiro em um store local e só depois reconcilia com o servidor. SSE vs. WebSockets vs. Polling Polling é um modelo pull em que clientes perguntam repetidamente; SSE e WebSockets mantêm uma conexão aberta para o servidor fazer push em tempo real. WebSockets & Sincronização em Tempo Real Um WebSocket é uma conexão persistente e bidirecional entre cliente e servidor, que permite a qualquer lado enviar mensagens no instante em que acontecem.

Autenticação & Segurança

Adaptadores de Login Social: Integração OAuth em BaaS Um adaptador de login social é um componente de backend que verifica tokens de um provedor de identidade e os converte em usuário e sessão. Autenticação Multifator (MFA) Autenticação multifator é um controle de login que exige duas ou mais provas de tipos diferentes — algo que você sabe, que você tem ou que você é. Autenticação Sem Senha (Passwordless) Autenticação sem senha é um modelo de login que verifica a identidade com uma chave guardada no dispositivo ou biometria, em vez de um segredo memorizado. Autenticação vs. Autorização Autenticação é a verificação de quem você é; autorização é a decisão, a cada requisição, do que você pode fazer. Todo sistema seguro precisa das duas. Controle de Acesso Baseado em Papéis (RBAC) Controle de acesso baseado em papéis é um modelo de autorização em que permissões pertencem a papéis, e usuários só as recebem por meio de seus papéis. Criptografia de Dados em Repouso e em Trânsito Criptografia em repouso é um controle que torna dados armazenados ilegíveis sem as chaves; a criptografia em trânsito protege os dados que cruzam a rede. Gerenciamento de Sessão Gerenciamento de sessão é a disciplina de criar, validar e destruir o estado server-side que vincula requisições HTTP a um único usuário. Hardening de Segurança em BaaS: CLPs, ACLs e Proteção da Master Key O hardening de segurança em BaaS é um conjunto de controles em camadas — CLPs, ACLs e disciplina de chaves — que fecha as brechas com que um backend nasce. IAM (Gestão de Identidade e Acesso) IAM é um framework de políticas e tecnologias que garante que os usuários certos tenham o acesso certo aos recursos certos, no momento certo. JSON Web Token (JWT) Um JSON Web Token é um token compacto e seguro para URLs que carrega claims JSON assinadas, permitindo verificar requisições sem sessões no servidor. Listas de Controle de Acesso (ACL) Uma lista de controle de acesso é uma lista anexada a um recurso que nomeia quais usuários ou papéis podem acessá-lo e o que cada um pode fazer. OAuth 2.0 & Login Social OAuth 2.0 é um padrão de autorização que permite a um app acessar a conta de um usuário em outro serviço — o login social constrói a autenticação por cima. Prevenção de Cross-Site Scripting (XSS) Cross-site scripting é um ataque que injeta scripts maliciosos em páginas confiáveis; prevenir exige codificar a saída conforme cada contexto. Segurança de Chaves de API Uma chave de API é uma string única que identifica o app que chama uma API; segurança de chaves de API é a disciplina de limitar o escopo e proteger a chave. Single Sign-On (SSO) Single sign-on é um método de autenticação em que um único login no provedor de identidade dá acesso a várias aplicações independentes.

Lógica de Backend & Computação Serverless

Arquitetura Orientada a Eventos (EDA) Arquitetura orientada a eventos é um estilo de design em que serviços anunciam fatos imutáveis como eventos e consumidores reagem de forma independente. Cloud Code (Funções Serverless) Cloud Code é um modelo serverless em que a lógica de backend roda como funções no servidor, disparadas por chamadas, eventos de dados ou agendamentos. Cloud Code Agendado & Cron Jobs Um cron job é uma tarefa que roda automaticamente em um agendamento de tempo; o Cloud Code agendado aplica a ideia a funções serverless. Cold Starts em Serverless Cold start é a penalidade de latência paga quando a plataforma serverless precisa criar e inicializar um novo ambiente antes de executar o seu código. Edge Computing & Funções de Edge Edge computing é um modelo que executa computação perto de usuários ou fontes de dados; funções de edge são código serverless executado em PoPs de CDN. Funções Serverless vs. Microsserviços Uma função serverless é uma unidade única de deploy de lógica de backend; um microsserviço é um serviço inteiro operado de forma independente. Gatilhos de Banco de Dados (beforeSave e afterSave) Um gatilho de banco de dados é um hook de código que roda automaticamente em eventos de dados — antes do save para validar, depois dele para reagir. Jobs em Segundo Plano & Agendadores de Tarefas Um job em segundo plano é uma tarefa que roda fora do ciclo de requisição — enfileirada pelo app, executada por workers, com retry em caso de falha. Middleware (Ciclo de Vida da Requisição) Middleware é uma função no pipeline de requisições que inspeciona ou modifica requisições e respostas antes de a lógica da rota rodar. Notificações Push (APNs & FCM) Uma notificação push é uma mensagem iniciada no servidor que os serviços de push da plataforma entregam ao dispositivo mesmo com o app fechado. Orquestração de APIs Orquestração de APIs é um padrão em que uma camada coordenadora chama várias APIs em sequência e retorna um único resultado combinado. Webhooks Um webhook é um callback HTTP automatizado: quando um evento ocorre, um sistema envia um POST com o payload para uma URL registrada por outro sistema.

IA & Stack Moderna

Frontend & Entrega Web