Back-end Delphi
Livro · Vinicius Sanchez

Back-end Delphi

Microsserviços com Horse, Docker e Kubernetes

Do primeiro THorse.Get a nove cópias rodando num cluster Kubernetes. Uma plataforma completa de venda de ingressos, construída capítulo a capítulo, com o Delphi que você já conhece.

Versão impressa, 549 páginas · vendido pela UICLAP

Capa do livro Back-end Delphi: Microsserviços com Horse, Docker e Kubernetes, de Vinicius Sanchez
23capítulos, em cinco partes
4serviços em Delphi: três APIs e um gateway
549páginas, formato 14 × 21 cm
MITtodo o código aberto no GitHub

"Delphi é para sistema desktop."

Você já ouviu essa frase. Às vezes de um colega, às vezes da própria empresa, quando chega a hora de construir uma API e alguém decide que "essa parte vai ser feita em outra linguagem".

Enquanto isso, é no Delphi que estão as regras de negócio mais importantes da casa. Este livro mostra, passo a passo, como construir um back-end moderno com ele: APIs REST, microsserviços, contêineres e Kubernetes, sem trocar de linguagem e sem pular as partes difíceis.

O que você vai construir

Uma plataforma de verdade, não exemplos soltos

Do primeiro ao último capítulo, você constrói um único sistema: uma plataforma de venda de ingressos para eventos. Cada capítulo acrescenta uma peça, e cada peça é testada pelas seguintes.

Três serviços, três bancos

Cada serviço é dono dos seus dados e conversa com os outros por HTTP, com tempo limite, nova tentativa e modo degradado.

Uma porta de entrada

Um API Gateway, também em Delphi, com o Horse: roteamento, identificador de requisição, CORS e limite de tentativas de login.

Pronta para produção

Compilada para Linux, empacotada em Docker e rodando com várias cópias no Kubernetes, com logs, métricas e Prometheus.

Um trecho do capítulo 8

Nunca vender o mesmo ingresso duas vezes

Abertura de vendas de um show concorrido: milhares de pessoas clicando no mesmo segundo. Nos testes manuais, uma requisição de cada vez, tudo funciona. Às 10h da segunda-feira, o sistema vende 11 ingressos de um lote de 10.

O livro mostra por que isso acontece, como resolver com um único comando no banco e, mais adiante, como provar que a solução aguenta três cópias do serviço disputando o mesmo estoque.

Números de execuções reais

Todo o código do livro foi compilado e executado durante a escrita. Os resultados que aparecem nas seções "Testando", como este ao lado, vêm dessas execuções.

TicketApi.Repository.FireDAC.pasDelphi
// Verificar e baixar o estoque em um único comando.
LQuery := NewQuery(
  'update batch_inventory' +
  '   set sold = sold + :quantity, updated_at = :now' +
  ' where id = :id' +
  '   and sold + :quantity <= quantity' +
  '   and :now >= sales_start and :now < sales_end' +
  ' returning price, event_id');
teste do capítulo 213 cópias da ticket-api
lote 2 com 20 ingressos; 60 compradores ao mesmo tempo
   status 201: 20
   status 409: 40
   tempo total: 1429 ms
Por que este livro

Escrito para quem programa em Delphi

compilado e testado

Código que roda

Cada exemplo foi compilado no Delphi 13 e executado no Windows, no Linux, no Docker e num cluster Kubernetes.

os tropeços contam

Problemas reais, no texto

O GUID que não era aleatório no Linux, o pool de conexões que acabou com três cópias, a imagem que "mentiu" no cluster: aconteceram, e o livro mostra como foram resolvidos.

uma pasta por capítulo

Comece de qualquer ponto

O repositório traz o projeto exatamente como fica ao final de cada capítulo. Perdeu-se? Compare com a pasta e siga em frente.

sem trocar de linguagem

A linguagem você já sabe

O livro não explica Delphi. Explica, do zero, tudo o que é de back-end: HTTP, REST, JSON, concorrência, contêineres e observabilidade.

bibliotecas da comunidade

O ecossistema de hoje

Horse, Boss, Jhonson, GBSwagger e RESTRequest4Delphi, com FireDAC e PostgreSQL. Sem ORM, sem mágica escondida.

capítulo 22

E o seu sistema legado?

Como levar um sistema cliente-servidor para a arquitetura nova aos poucos, sem parar a operação e sem reescrever tudo de uma vez.

Sumário

Do primeiro endpoint à produção

AberturaIntrodução
  1. 1Introdução
Parte IFundamentos
  1. 2Preparando o ambiente
  2. 3Primeiros passos com o Horse
  3. 4Arquitetura da plataforma
Parte IIConstruindo os microsserviços
  1. 5Acesso a dados com FireDAC
  2. 6Serviço de eventos
  3. 7Serviço de participantes
  4. 8Serviço de ingressos
  5. 9Relatórios de vendas e ocupação
  6. 10Validação e tratamento de erros
  7. 11Documentando a API com Swagger
Parte IIIIntegração e segurança
  1. 12Comunicação entre serviços
  2. 13Autenticação e autorização com JWT
  3. 14Configuração e segredos
  4. 15Testes automatizados
  5. 16API Gateway
Parte IVProdução
  1. 17Rodando no Linux
  2. 18Docker
  3. 19Conceitos de Kubernetes
  4. 20A plataforma inteira no Kubernetes
  5. 21Observabilidade: logs, métricas e rastreamento
Parte VIndo além
  1. 22Migrando um sistema legado aos poucos
  2. 23Próximos passos
Para quem é

Você vai aproveitar este livro se…

É para você

  • Você já programa em Delphi: formulários, units, acesso a banco.
  • Nunca construiu uma API, ou construiu e quer ir além do básico.
  • Precisa levar regras de negócio que já existem para um aplicativo, um portal ou uma integração.
  • Quer entender Docker e Kubernetes a partir de um sistema seu, e não de um exemplo pronto.

Talvez não seja

  • Se você procura um curso da linguagem Delphi: o livro parte do princípio de que você já a conhece.
  • Se você quer uma referência de bolso de uma biblioteca específica: aqui o foco é construir um sistema inteiro.
O autor

Vinicius Sanchez

Programador Delphi há mais de catorze anos, Embarcadero MVP e certificado Delphi Developer. Formado em Sistemas de Informação pela Fundação Educacional de Fernandópolis (FEF), com formação técnica em Informática e em Informática para Internet pela Etec de Fernandópolis, trabalha com sistemas corporativos e com a construção de back-ends modernos em Delphi.

Compartilha o que aprende em palestras e transmissões ao vivo sobre Delphi e APIs, em artigos técnicos no Medium e no seu canal do YouTube.

Perguntas frequentes

Antes de comprar

Qual versão do Delphi eu preciso?

Todo o código foi escrito e testado no Delphi 13. Os capítulos 1 a 4 funcionam em qualquer edição. A compilação para Linux, a partir do capítulo 17, exige as edições Enterprise ou Architect. Para o acesso ao PostgreSQL com o FireDAC, a partir do capítulo 5, confira na matriz de recursos da Embarcadero o que a sua edição inclui.

Preciso saber Docker ou Kubernetes?

Não. Tudo o que é de back-end é explicado do zero, no momento em que aparece: HTTP, REST, JSON, concorrência, contêineres e Kubernetes.

Onde fica o código-fonte?

No GitHub, com uma pasta por capítulo e licença MIT. Cada pasta traz o projeto como ele fica ao final do capítulo, um arquivo com os comandos do capítulo prontos para copiar e um roteiro que testa tudo de uma vez. Você pode usar o código livremente nos seus projetos.

Serve para quem usa Lazarus?

Os conceitos sim: o Horse também roda no Lazarus, e rotas, middlewares e arquitetura são os mesmos. Os exemplos, porém, usam o FireDAC e foram testados apenas no Delphi.

Qual o formato do livro?

Livro impresso, no formato 14 × 21 cm, com 549 páginas, em português. A venda é feita pela loja da UICLAP, que imprime e envia o livro.

O seu Delphi já está pronto para o back-end. Falta o caminho.