Iniciei uma imersão em GraphQL e tem sido uma experiência bastante enriquecedora: primeiro por que estou podendo com o tempo limpar todo o hype que jogaram em cima da tecnologia e ter uma visão mais pé no chão da coisa. Segundo por que encontrei alguns usos pra abordagem que estou achando bem interessantes também.
O primeiro deles é na modernização de sistemas legados que possuem sérios problemas no modo como organizaram originalmente seus bancos de dados. GraphQL nos permite criar uma nova modelagem a ser exposta ao mundo externo ao mesmo tempo que dá tempo à equipe para realizar as mudanças necessárias em seus sistemas caso necessário.
Como? Simples: a gente implementa uma ponte entre o servidor GraphQL e o sistema original. Com isto não precisamos mudar o sistema original e todo mundo ganha fôlego pra podermos pensar em como melhorar a estrutura subjacente.
O segundo deles é como plataforma de integração: há momentos em que é interessante unir plataformas distintas. Neste caso, mapeio estes diferentes sistemas em uma mesma API e, com isto, consigo até mesmo consultar relacionamentos entre estas bases de dados. Novamente mantenho a estratégia da ponte, ou seja, de não adicionar pressão à equipe que lida com o sistema original, o que é vital.
Do ponto de vista de ferramentas, o que tenho visto tenho gostado. A documentação do padrão oficial é bem legal e o suporte dos frameworks também tá bacana, apesar de perceber uma maior tendência no universo JavaScript usando ferramentas como Apollo.
E você? Como tem sido sua experiência? O que tem curtido, o que tem detestado? Quais os desafios? Como tem aplicado?