Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Who's using gqlgen in production? #268

Open
vektah opened this issue Aug 7, 2018 · 42 comments
Open

Who's using gqlgen in production? #268

vektah opened this issue Aug 7, 2018 · 42 comments
Labels

Comments

@vektah
Copy link
Collaborator

@vektah vektah commented Aug 7, 2018

We are preparing a blog post and would like to get a feel for who is currently using gqlgen?

Might as well go first; 99designs has been running gqlgen for several months now.

@vektah vektah added the question label Aug 7, 2018
@vvakame

This comment has been minimized.

Copy link
Collaborator

@vvakame vvakame commented Aug 7, 2018

not yet in production... 😿

@ghost

This comment has been minimized.

Copy link

@ghost ghost commented Aug 7, 2018

@JulienBreux

This comment has been minimized.

Copy link

@JulienBreux JulienBreux commented Aug 7, 2018

Soon ~10 days

@JonLundy

This comment has been minimized.

Copy link
Contributor

@JonLundy JonLundy commented Aug 7, 2018

Running in production with one internal application for about 3 months now. User base 10-15.

@anurag

This comment has been minimized.

Copy link
Contributor

@anurag anurag commented Aug 8, 2018

Render is using it for everything in production and internal tooling. We love it.

@rahulmadduluri

This comment has been minimized.

Copy link

@rahulmadduluri rahulmadduluri commented Aug 28, 2018

Is anyone using the subscriptions in production?

@jacklaaa89

This comment has been minimized.

Copy link

@jacklaaa89 jacklaaa89 commented Aug 28, 2018

We are close to deploying at least 3-4 of our core services at Sky Bet using gqlgen.

@yamitzky

This comment has been minimized.

Copy link
Contributor

@yamitzky yamitzky commented Sep 1, 2018

We are using for our news app newsdigest's backend API for two months!

For our use case, performance is very very very important, and gqlgen is awesome for that. :) I compared with other GraphQL libraries and choosed it.

@aaahrens

This comment has been minimized.

Copy link

@aaahrens aaahrens commented Sep 13, 2018

@yamitzky how big is the performance jump in this versus gophers (a guesstimate is gucci). I know that the other libraries aren't that performant.

@codyleyhan

This comment has been minimized.

Copy link
Contributor

@codyleyhan codyleyhan commented Sep 21, 2018

Neighborly is starting to move one of our production applications to gqlgen

@marczahn

This comment has been minimized.

Copy link

@marczahn marczahn commented Sep 22, 2018

After testing out gqglen and some other libraries we will use it in one of the next projects.

@adamgoose

This comment has been minimized.

Copy link

@adamgoose adamgoose commented Sep 23, 2018

I use gqlgen almost daily. It is the foundation of how we build our GraphQL implementations, of which there are many. We write medical practice-management and automation software. gqlgen is deployed in linux containers, Windows desktop and service applications, as well as on Raspberry Pis!

Thank you so much for an excellent package! It has helped lay the foundation for most of our software development today!

@adamgoose

This comment has been minimized.

Copy link

@adamgoose adamgoose commented Sep 23, 2018

@rahulmadduluri : Is anyone using the subscriptions in production?

Yessir, we are! Our implementation is primitive, and our subscriptions are limited by it. Here's a simple example of some resolvers that might help you out. I haven't run this at all, but have copied some code from another project. No promises that it works as-is!

// Subscriptions stores active subscriptions. The index of the top-level map is either a Task ID, or the string "*". The second-level map stores an active subscription with a unique ID.
var Subscriptions = map[string]map[string]chan *models.Task
const SUB_ALL = "*"

func (r subscriptionResolver) TaskCompleted(ctx context.Context, id *string) (*models.Task, error) {
	subId := uuid.Must(uuid.NewV4()).String()
	c := make(chan *models.Charge, 1)

	if id == nil {
		id = &SUB_ALL
	}

	go func() {
		<-ctx.Done()
		delete(subs[id], subId)
	}()
	if subs[id] == nil {
		subs[id] = make(map[string]chan *models.Task, 0)
	}
	subs[id][subId] = c

	return c, nil
}

func (r mutationResolver) CompleteTask(ctx context.Context, id string) (*models.Task, error) {
	t := &models.Task{}
	// persist your task

        // Publish to filtered subscriptions
	for _, c := range Subscriptions[id] {
		c <- t
	}
        // Publish to non-filtered subscriptions
	for _, c := range Subscriptions[SUB_ALL] {
		c <- t
	}

	return t, nil
}

One thing we need to improve on is my eventing. With a proper event bus, subscription "filters" could be vastly more complex; not to mention all of the other benefits of an event-based system.

@MichaelMure

This comment has been minimized.

Copy link
Contributor

@MichaelMure MichaelMure commented Sep 24, 2018

git-bug is not fully ready ready but does use gqlgen to bind the web UI with the backend.

@icco

This comment has been minimized.

Copy link
Contributor

@icco icco commented Sep 28, 2018

I'm not a company, but I use it for the backend of my blog, writing.natwelch.com.

@frederikhors

This comment has been minimized.

Copy link

@frederikhors frederikhors commented Nov 6, 2018

Anyone tested performances vs gophers-graphql library?

@vektah

This comment has been minimized.

Copy link
Collaborator Author

@vektah vektah commented Nov 6, 2018

I think @lwc is working on some cross framework performance tests

@andrewmunro

This comment has been minimized.

Copy link

@andrewmunro andrewmunro commented Dec 7, 2018

We are using gqlgen quite heavily at https://github.com/skybet for multiple projects, we were quite early adopters and have seen this library go through many changes in the last year. Amazing to see 99designs adopting and actively developing it.

We are using graphql to enable backend teams to build out APIs and automatically generate administrative front-ends to configure them.

Everything works great, our current pain points are around dataloaders and performance as our dataset has grown substantially since we started. Complexity has helped things, we are now able to rate limit people sending us stupid requests...adding things like pagination etc is next on our list.

@sdalezman

This comment has been minimized.

Copy link

@sdalezman sdalezman commented Dec 13, 2018

Intello is using gqlgen in almost all of our production services

@bmonkman

This comment has been minimized.

Copy link

@bmonkman bmonkman commented Dec 13, 2018

We've been using it in production at https://bench.co for a couple months now, moving more and more functionality over. It's on the edge of our infra, running in Kubernetes and fronted with an AWS ELB, then resolvers are making REST calls to our backend services to fetch data. Right now we have about 50 of our models represented, and about 120 resolvers created. Really liking it so far, thanks for all the hard work, @vektah

@imiskolee

This comment has been minimized.

Copy link

@imiskolee imiskolee commented Mar 26, 2019

Bindo Labs Limited used it for an open model CRM platform.

https://bindopos.com

@wawoon

This comment has been minimized.

Copy link

@wawoon wawoon commented Mar 26, 2019

I work for Welyco(https://welyco.com), which is a startup company runs smart restaurants in Japan.
In our restaurants, customers can order foods and make payments with their smartphone.

Our restaurant system is fully GraphQL API powered by gqlgen.
Now it's under development, but we will release it within 2 months.

@davcamer

This comment has been minimized.

Copy link

@davcamer davcamer commented Mar 28, 2019

I'm using it at Digital Ocean for an internal hardware management system.

@LennyPenny

This comment has been minimized.

Copy link

@LennyPenny LennyPenny commented Apr 1, 2019

Are there any open source projects using it? The examples don't really help with more complex apis

@MichaelMure

This comment has been minimized.

Copy link
Contributor

@MichaelMure MichaelMure commented Apr 1, 2019

@jonatasbaldin

This comment has been minimized.

Copy link
Contributor

@jonatasbaldin jonatasbaldin commented Apr 14, 2019

Hey there!

Just did an Exchange Rate API with gqlgen

https://exchangeratesgraphql.deployeveryday.com/

@vvakame

This comment has been minimized.

Copy link
Collaborator

@vvakame vvakame commented Apr 17, 2019

We started provides some page component by gqlgen
https://techbookfest.org/

@sagikazarmark

This comment has been minimized.

Copy link

@sagikazarmark sagikazarmark commented May 9, 2019

We at Banzai Cloud use gqlgen for the v2 API of our Cloud Info application and we love it.

@pkosiec

This comment has been minimized.

Copy link

@pkosiec pkosiec commented May 10, 2019

We at Kyma use gqlgen as GraphQL API layer for Kubernetes resources. Kyma is an open-source project driven by SAP.

The component is called console-backend-service and the source code is located here: https://github.com/kyma-project/kyma/tree/master/components/console-backend-service

@stevenjack

This comment has been minimized.

Copy link

@stevenjack stevenjack commented Jun 7, 2019

We use gqlgen in production at Vidsy and ❤️it, @vektah and team congrats on such a well thought-out and executed alternative to the other golang implementations. Currently only for our client facing platform that's not publicly accessible but big plans for the future!

@DBL-Lee

This comment has been minimized.

Copy link
Contributor

@DBL-Lee DBL-Lee commented Jun 13, 2019

Check out DLive. We have migrated from Apollo Server and been running gqlgen as our API server for a few months and it works perfectly. Thank you for the amazing project @vektah !

@fwojciec

This comment has been minimized.

Copy link

@fwojciec fwojciec commented Jun 27, 2019

There are many much more impressive projects listed here, but I wanted to add Graal Literary Agency's website to the list. The backend implemented using gqlgen powers a frontend app Next.js and an admin panel built using React. Thank you so much for this wonderful piece of software -- it's been a joy to build and work with!

@jakubknejzlik

This comment has been minimized.

Copy link

@jakubknejzlik jakubknejzlik commented Aug 12, 2019

We are using it in production on few projects (although small ones). We also created library (still wip) which generates GraphQL with gqlgen resolvers using gorm which helps to create model services more easily. Checkout https://github.com/novacloudcz/graphql-orm if interested :)

@bowd

This comment has been minimized.

Copy link

@bowd bowd commented Aug 15, 2019

The monitoring product from the Alethio suite of products, which is part of Consensys is build using gqlgen 🚀

Keep up the good work!

@vektah vektah added the pinned label Aug 28, 2019
@jay-manday

This comment has been minimized.

Copy link

@jay-manday jay-manday commented Oct 30, 2019

I've been writing our internal API at Toggle Industries in gqlgen we're using it to parse geometry from .ifc (bim) and cad models in preparation for our robotic assembly line, i wrote mutations to run linear transformations on these point clouds, set reference points for our robotic assembly line, as well as set reference points for a modular jig system that the robotic arm assembles, i've also been writing mutations to push some of the output from our robotic assembly with it as well and have been having a lot of success with gqlgen on my end. great job guys!

@jaredly

This comment has been minimized.

Copy link

@jaredly jaredly commented Nov 19, 2019

We're using it at Khan Academy.

@Niondir

This comment has been minimized.

Copy link

@Niondir Niondir commented Dec 27, 2019

I currently try to migrate our ~850 lines long schema from github.com/graphql-go/graphql to gqlgen which we use in production. Currently I'm positive that gqlgen will save me from writing a lot of boilerplate.

I will keep this post updated if I have some progress :)

Update
After some work I got from ~7.600 self written lines to ~1700 lines of code (which is ~22.3%).
All tests are green and were quiet easy to migrate with a simple wrapper function that works for both frameworks:
func DoRequest(req *GraphqlRequest) (map[string]interface{}, error)

If someone is interested in this wrapper, let me know. But it's straight forward to write.

Plus IMHO using a schema driven approach helps with keeping Required fields, default values and the schema it self more clean.

@BitPhinix

This comment has been minimized.

Copy link

@BitPhinix BitPhinix commented Jan 8, 2020

We at Barbra (https://barbra.io) use gqlgen + federation in production with 5+ Microservices. It's been a pleasure so far, thanks for this awesome project and keep up the good work.

@frederikhors

This comment has been minimized.

Copy link

@frederikhors frederikhors commented Jan 9, 2020

@BitPhinix can I ask what typ of federation are you using?

@BitPhinix

This comment has been minimized.

Copy link

@BitPhinix BitPhinix commented Jan 11, 2020

@frederikhors we are using Apollo federation with the WIP implementation from @marwan-at-work (+ a gateway written in nodejs) and we haven't encountered any issues so far. Since it's merged in the latest master, we will switch to it in the next release.

@andytruong

This comment has been minimized.

Copy link

@andytruong andytruong commented Jan 14, 2020

@go1com is using gqlgen. Thank you for great tool.

@swkumar

This comment has been minimized.

Copy link

@swkumar swkumar commented Jan 16, 2020

Thumbtack is using gqlgen in production for many of our APIs that power our native and web apps and are in the process of moving over several others.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
You can’t perform that action at this time.