Docker aos 10 anos – 3 coisas que acertamos, 3 coisas que erramos
24 de janeiro de 2024Criando um pipeline de dados IoT usando InfluxDB e AWS
24 de janeiro de 2024Olhando para o cenário atual de APIs, é evidente que a adoção corporativa do GraphQL cresceu de uma tecnologia de nicho para desenvolvedores front-end para uma tecnologia chave para ajudar arquitetos e desenvolvedores back-end a combinar APIs e outros serviços. O Gartner previu esse impulso em 2021, relatando que apenas 10% das empresas usavam GraphQL na produção, mas esperava que mais de 50% das empresas o adotassem até 2025. Em meio a essa rápida expansão, há uma insatisfação crescente com as abordagens atuais para compor dados em diferentes back-ends.
A necessidade de uma camada unificada
Uma razão para sua crescente popularidade é a capacidade do GraphQL de funcionar como uma camada unificada para todos os seus dados. As empresas estão lidando com mais dados do que nunca, usando uma variedade de back-ends diferentes. Freqüentemente, esses back-ends são distribuídos na forma de microsserviços ou APIs de terceiros.
O GraphQL surgiu aqui como uma virada de jogo, permitindo a recuperação de dados personalizáveis por meio de uma única solicitação, em vez de ter que encadear ou misturar e combinar várias solicitações com APIs incoerentes (por exemplo, para APIs REST). É aqui que entra em jogo o conceito de federação GraphQL, conforme mostrado no diagrama abaixo.
Federação é o padrão no qual os serviços GraphQL individuais são compostos em uma única API GraphQL que pode ser usada como ponto de entrada para acessar todos os dados de back-ends subjacentes por meio de uma única solicitação. Em vez de enviar solicitações individuais para esses back-ends, essas solicitações são federadas pelo GraphQL.
No entanto, a atual implementação da federação é mantida por uma única empresa, o que leva ao aprisionamento do fornecedor, retarda a inovação e limita as escolhas tecnológicas.
Armadilhas da Federação GraphQL Atual
Apollo Federation é uma solução popular para construir uma infraestrutura GraphQL federada. Ele permite que vários serviços GraphQL sejam combinados em uma única API GraphQL. No entanto, embora a Apollo Federation certamente tenha definido o padrão para a composição de dados em GraphQL, ela tem suas desvantagens.
A abordagem da Federação Apollo requer o uso de diretivas e tipos específicos definidos pela Apollo. Normalmente, eles estão disponíveis apenas ao usar a tecnologia Apollo para os back-ends subjacentes ou ao usar tecnologias de back-end compatíveis com a especificação Apollo. Isso vincula a arquitetura da federação GraphQL à implementação do Apollo.
Isso leva a um cenário de dependência de fornecedor, onde as empresas dependem do Apollo para atualizações, suporte e evolução do conjunto de recursos da federação. Esta dependência restringe a liberdade de mudar para outras tecnologias ou de adotar inovações potenciais da comunidade GraphQL mais ampla.
Federação aberta é crucial para a inovação
Na GraphQLConf de setembro de 2023 (a primeira conferência GraphQL organizada pela comunidade nos Estados Unidos), ficou evidente que os desenvolvedores e as empresas estão torcendo por uma abordagem aberta para a federação. Não apenas para combinar dados apenas de APIs GraphQL — como é o caso da federação GraphQL — mas também para combinar GraphQL com especificações não-GraphQL para APIs como OpenAPI.
A empresa IBM StepZen acredita na democratização da federação, permitindo que diferentes serviços GraphQL suportem um padrão comum. Quer você use IBM ou outras tecnologias para construir sua API GraphQL, você não deve correr o risco de ter que usar o ecossistema de um único fornecedor. À medida que as empresas continuam a fazer investimentos significativos em tecnologias API, uma abordagem de federação aberta não é apenas uma vantagem estratégica, mas uma necessidade para a inovação e o crescimento contínuos no ecossistema API.
Ao construir o StepZen (adquirido pela IBM em fevereiro de 2023), acreditávamos que a federação deveria funcionar da mesma maneira para qualquer back-end. Em O caso de uma camada de acesso a dados federados com GraphQL, o cofundador da StepZen, Anant Jhingran, explica como a abordagem funciona. À medida que esse padrão se torna mais popular, há uma nova iniciativa de federação promissora chamada GraphQL Fusion, que é apoiada pela GraphQL Foundation e pela comunidade mais ampla, incluindo a IBM. Estamos ansiosos para ver como esta iniciativa e a comunidade em geral se desenvolvem.
A postagem Por que o GraphQL precisa de uma abordagem de federação aberta apareceu pela primeira vez no The New Stack.