Giter VIP home page Giter VIP logo

domain-graph-service-sample's Introduction

DGS Federated GraphQL WIP

Synopsis

This is a sample project that demonstrates how to use Netflix DGS to build a federated GraphQL API.
It's a wip based on the content presented in Code GraphQL Application : Java Spring Boot 3 & Netflix DGS

The interesting thing about the course is the code isn't optimal, but that provides opportunities to refactor and explore Java 17 language features.
But the specific focus on DGS is what makes the course valuable.

Motivation

  • A federated GraphQL approach to microservice architecture promotes loose coupling between microservices, which in turn improves both deployability and individual testability.
  • Individual testability is also improved because each microservice can be tested independently of the rest of the system. This means that developers can test their code in isolation, without worrying about the impact on other microservices. This reduces the risk of bugs and improves overall code quality.
  • In a federated GraphQL approach, each microservice exposes a GraphQL schema that describes its data and functionality. These schemas are then combined into a single federated schema that spans the entire system. This allows clients to query the entire system using a single GraphQL endpoint.
  • Because each microservice is responsible for its own schema, developers can work independently on different microservices without worrying about the impact on the rest of the system. This promotes loose coupling between microservices, which in turn improves both deployability and individual testability.
  • Overall, a federated GraphQL approach to microservice architecture promotes a modular, scalable, and resilient system that is easy to deploy and test.

Additional Tools

  • DGS's schema first approach may lend itself well to db decomposition via tools like db2graphql
  • Plugin to create jpa entities from existing db schema: JPA Buddy

To Do

  • use jpa buddy to create entities from db schema
  • bean mapping library eg: MapStruct

domain-graph-service-sample's People

Contributors

fluidnotions avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.