Nesta palestra apresento o Go kit, um toolkit para o desenvolvimento de microsserviços em Go que fornece uma série de funcionalidades importantes como log, métricas, middlewares, etc.
Go é uma ótima linguagem de uso geral, mas microsserviços exigem uma certa quantidade de suporte especializado. Segurança, RPC, observabilidade do sistema, infraestrutura e até mesmo design de arquitetura. Go kit preenche as lacunas deixadas pela biblioteca padrão e torna o Go uma linguagem de primeira classe para escrever microsserviços em qualquer organização. https://gokit.io
Service Os serviços são onde toda a lógica de negócios é implementada. No Go kit, os serviços são normalmente modelados como interfaces e as implementações dessas interfaces contêm a lógica de negócios. A lógica de negócios não deve ter conhecimento dos conceitos de das outras camadas. Por exemplo, seu serviço não deve saber nada sobre cabeçalhos HTTP ou códigos de erro gRPC.
Endpoint Um endpoint é como uma action/ handler em um controller. Um endpoint expõe um método/ função de serviço para o mundo externo usando a camada de transporte. Um único endpoint pode ser exposto usando vários transportes.
Transport O domínio de transporte está vinculado a transportes concretos como HTTP ou gRPC. Em um mundo onde os microsserviços podem oferecer suporte a um ou mais transportes, isso é muito poderoso; você pode oferecer suporte a uma API HTTP e um serviço RPC mais recente, tudo em um único microsserviço.