API - Guia de Estilo

Diretrizes do Desenvolvimento

402 views 11/12/2018 11/12/2018 gian-pasqualini 6

Características dos serviços

São as características que devem nortear a criação dos serviços na plataforma Senior X. A solução deve ser avaliada em relação a cada um dos itens abaixo, no momento de sua criação ou manutenção, tanto para criação de novas funcionalidades, quanto para a correção de erros.

  • Alta disponibilidade
  • Baixo custo
  • Escalabilidade
  • Extensibilidade
    • Ecosistema de APIs
    • Facilidade de Customização
  • Elasticidade
  • Tolerância a falhas
  • Liberação contínua
  • Facilidade de manutenção
  • Produtividade

Regras para divisão dos serviços

Quando um produto é concebido, suas funcionalidades são construídas em serviços. Num ambiente de micro serviços, devemos utilizar algumas regras para definir como separar as funcionalidades em executáveis diferentes. Abaixo temos alguns itens que são indícios para a separação de um conjunto de funcionalidades em um serviço separado.

  • Pode ser vendido isoladamente
  • Possui autonomia de negócio
    • Vive sozinho sem depender de outros serviços de negócio
  • Possui necessidade de escalabilidade distinta
    • Necessita de escala, processamento ou memória de forma muito diferente do restante das demais funcionalidades de um serviço

Uso de dados comuns e Replicação entre serviços

No ambiente de micro serviços vários dados são de utilização comum entre mais de um serviço. Há várias formas de compartilhar estes dados. Abaixo temos algumas definições a respeito

  • A replicação deve acontecer quando não for viável a obtenção dos dados diretamente do serviço “pai” da entidade
  • Quando houver replicação, deve acontecer com base na mensageria Evento > Subscribe

Veja aqui um detalhamento para alguns casos e como deve ser tratado

Transações distribuídas

Uma operação de negócio pode passar pela execução de rotinas em vários serviços, por isso, tenha sempre em mente os seguintes preceitos:

  • Deve-se evitar a dependência forte entre 2 serviços
  • Eventos são disparados e tratados garantindo que cada serviço seja autônomo e consiga se resolver
  • Pode ser necessária a criação de maquinas de estado para o controle de execução

Este artigo foi útil para você?