bacen / pix-dict-api

API do DICT - Diretório de Identificadores de Contas Transacionais
417 stars 59 forks source link

[PROPOSTA] Adição de parâmetro para facilitar polling de participantes indiretos #12

Closed luizlaydner closed 3 years ago

luizlaydner commented 4 years ago

Motivação Existem participantes diretos que oferecem acesso a um grande número de participantes indiretos. Algumas operações de polling da API do DICT, tais como listClaims e listInfractionReports, são feitas hoje para apenas um participante individual. A implicação disso é que esses participantes com muitos indiretos vinculados precisam fazer um grande número de chamadas à API, o que é ineficiente do ponto de vista de uso de recursos do sistema.

Propostas

Alternativa 1: Adicionar um parâmetro booleano opcional includeIndirectParticipants nas operações de listClaims e listInfractionReports, que quando true incluiria adicionalmente os claims/infractionReports de todos os indiretos vinculados ao participante direto que está solicitando.

Alternativa 2: Adicionar um parâmetro array indirectParticipant que permitiria passar uma lista de participantes indiretos vinculados ao direto para os quais se deseja listar claims/infractionReports.

Perguntas:

fCamargosRibeiro commented 3 years ago

Sim, nós do BANCO COOPERATIVO SICREDI S.A temos hoje o cenário de 108 participantes, acho que seria mais fácil a alternativa 1, acho que nessa alternativa o impacto seria menor e a alteração seria mais rápida de fazer. Ainda em cima desse problema, acho muito importante também a implementação da paginação, hoje com o parâmetro de limit de 200 e vindo o HasMoreElements true ficamos no escuro e com tantos participantes é algo que pode acontecer com facilidade. Caso não seja possível a paginação a alternativa 2 talvez seja mais viável para fazer alguma divisão e fazer mais pollings.

anamorais83 commented 3 years ago

O Bancoob, instituição financeira do Sistema Sicoob, possui 371 participantes indiretos. Esta característica alinhada aos limitadores estabelecidos para a realização de chamadas à API dificulta o alcance do SLA estabelecido.

De fato a proposta apresentada é fundamental para otimizar a realização das operações citadas, tanto para a nossa infraestrutura quanto para a estrutura centralizada do Banco Central.

Para nós a Proposta 1 nos parece ser a mais adequada para o tratamento da questão.

JeanFabichaki commented 3 years ago

@luizlaydner Isso já está no ambiente de homologação? Nossas rotinas não estão mais funcionando devido a modificação do comportamento da API e testando agora esse parâmetro percebi que já está funcionando.

O comportamento da API foi alterada sem aviso?

luizlaydner commented 3 years ago

@fCamargosRibeiro @anamorais83 : Foi publicada versão 1.1.0 da API que adiciona o parâmetro includeIndirectParticipants na operação de listClaims