Using GraphQL with graph databases - Barbosa, Tiago Filipe Nascimento (2024)
Graph databases and GraphQL query language have seen increasing adoption across various industries in recent years. There is a potential synergy arising from integrating GraphQL with graph databases, raising the need to evaluate and compare this collaboration in contrast to integrating GraphQL with relational databases, especially in terms of performance and maintainability. This document explores the synergies between GraphQL and graph databases, delving into their integration, challenges, and prospects. The initial chapters establish the contextual landscape, addressing the problem, objectives, research methodology, ethical considerations, and structural organization of the study. Next, there’s an introduction to the concepts of GraphQL and graph databases, dissecting their fundamental structures, querying mechanisms, data organization, and ideal usage scenarios. This foundational understanding sets the stage for a detailed investigation into their integration, as outlined in the state-of-the-art chapter. Within this chapter, a systematic literature review is conducted where the research questions guiding the exploration of integration strategies and considerations are elucidated. The discussion encompasses primary use cases driving the adoption of GraphQL in conjunction with graph databases, the selection of suitable technologies for seamless integration, and the elucidation of key challenges impeding their widespread adoption and successful implementation. In the analysis and design phase, a project for migration is selected, using the Analytic Hierarchy Process (AHP), characterized, and architecturally explained. The migration process is then elaborated, including data modeling transformation and the technologies and approaches used. The implementation chapter describes the migration changes, with specific attention to domain classes and custom resolvers, authentication and authorization, and adjustments to the initial project. Next, the experimentation and evaluation of the solutions is achieved following the Goal, Questions, Metrics (GQM) approach, focusing on evaluating the performance and maintainability of each solution. The results are analyzed, concluding that the solution using a graph database is superior in terms of maintainability and, in some cases, in terms of performance too. With a higher number of concurrent users, the graph database solution presented better results overall. The relational database solution outperformed when using a small to medium number of users. If the queries and domain do not require deep nesting relationships, then the relational database seems more desirable, in terms of performance. Finally, the dissertation concludes with a summary of achievements, an outline of difficulties encountered, an assessment of threats to validity, and suggestions for future work.