Skip to content

DyDaQ framework connects GraphQL service layer with database efficiently

License

Notifications You must be signed in to change notification settings

americanexpress/dydaq

GraphQL Dynamic Data Query - DyDaQ

DyDaQ

DyDaQ is a framework which connects GraphQL service layer (resolvers) with database efficiently, it generates highly optimal SQL queries which suits better for GraphQL and makes GraphQL to Database calls lean / high performance.

Example GraphQL Query:

query{ 
    getHospitalDetails(){
      Name
      Address
      City
      }
    }

😟 Traditional JPA Query to DB -> Select * from HospitalDetailsTable;

😊 GraphQl Optimized DyDaQ -> Select Name, Address, City from HospitalDetailsTable;


DyDaQ - (significantly improved query performance vs JPA)


Features

  1. Generates DB SQL queries on the fly dynamically
  2. SQL are lean and optimized for GraphQL
  3. Support simple queries, complex joins and aggregations
  4. Supports Native queries - write your own SQL
  5. Plugin added to generate DTO/POJO (can also use Intellij/Eclipse JPA plugin to generate it)
  6. Select only those columns from DB which are requested from GraphQL query

All these features gives huge performance boost specially with high veracity and high volume data.


Arch


Prerequisite

  • Maven 3+
  • Java 8+
  • Spring framework
  • GraphQL-Java
  • GraphQL-Spqr

Getting Started

Please start with these Basics and Examples

Steps for implementing Dynamic Query to supercharge your GraphQL Resolvers:

  1. Create entities -> DyDaQ GraphQL DDQ Data Model Entity Generation
  2. Generate metadata class from the entities -> DyDaQ GraphQL DDQ Metadata Class Generation guidelines
  3. Leverage DyDaQ APIs to enable your data -> DyDaQ GraphQL DDQ Query Development

Contributing

We welcome your interest in the American Express Open Source Community on Github. Any Contributor to any Open Source Project managed by the American Express Open Source Community must accept and sign an Agreement indicating agreement to the terms below. Except for the rights granted in this Agreement to American Express and to recipients of software distributed by American Express, You reserve all right, title, and interest, if any, in and to Your Contributions. Please fill out the Agreement.


License

Any contributions made under this project will be governed by the Apache License 2.0.


Code of Conduct

This project adheres to the American Express Community Guidelines. By participating, you are expected to honor these guidelines.

About

DyDaQ framework connects GraphQL service layer with database efficiently

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published