If you work with #GraphQL and are CURIOUS on what the recently open source released Domain Graph Service framework by @NetflixEng is ? I have attempted a really short summary of the same below 🧵👇
#Annotation-Based : The framework’s core revolves around the annotation-based programming model familiar to Spring Boot developers. Just start the Spring Boot application, the /graphql endpoint along with the query editor on /graphiql endpoint will be available.
#Java / #Kotlin : So you can say it is primarily ofadvantage for Java developers. Regardless of whether you use Java or Kotlin, the DGS framework provides an easy way to build GraphQL services in Spring Boot.
#Mutation / #Subscription : Using @DgsData you can create Query and Mutations data fetchers/resolvers. It also supports in Subscriptions by creating a websocket. We leverage @InputArgument to extract the input arguments from the data fetching environment.
#Security :The DGS Framework integrates with Spring Security using the well known @Secured annotation. Once Spring Security is set up however, you can apply @Secured to your data fetchers, very similarly to how you apply it to a REST Controller in Spring MVC.
#Testing : Another key feature is support for lightweight query tests. These tests allow you to execute queries without the need to work with the HTTP endpoint. The tests look and feel like plain JUnit tests.
#Federation : If you have multiple independent teams then they need robust integration and schema federation. Through @extend directive DGS framework provides effective way to split the ownership of a large monolithic GraphQL schema across microservices.
#Monitoring : By implementing the Instrumentation interface and annotating it with @Component, the framework is able to pick it up automatically. For example, it can output the execution time for each data fetcher, and the total query execution time, to the logs.
#CodeGeneration : Most important , if you want to avoid lot of this setting up stuff and focus on schema. The DGS Code Generation plugin generates code during your project’s build process based on your Domain Graph Service’s GraphQL schema file.
If you want to know the story on how @NetflixEng worked on building this Domain Graph Service and how they are using this internally, read more here netflixtechblog.com/how-netflix-sc…