async-graphql icon indicating copy to clipboard operation
async-graphql copied to clipboard

Who's using Async-graphql in production?

Open sunli829 opened this issue 5 years ago • 25 comments

If your company is using Async-graphql in production, please let me know who are you so I can mention you in the README.

sunli829 avatar Feb 07 '21 01:02 sunli829

I'll start: We're using async-graphql to power the API in Vector. We have two clients connecting to it:

  1. top, our CLI tool for observing event activity across all components.
  2. An upcoming UI dashboard, built in Typescript, React + Urql.

I wrote a blog post about it here, although there are some updates required to that post to pick up the latest schema changes.

Things that have been particularly awesome:

  • The code-first approach for writing schema. In a previous project, we used a Go GraphQL library, which required writing everything in SDL and building resolvers around it. Being able to keep everything in Rust has been awesome.
  • Minimal boilerplate. Being able to drop in a few annotations around methods and parameters and get a fully working GraphQL API is perfect!
  • Relay connections. It was trivial to add pagination support to our queries, which has proven very useful when dealing with very large data sets. I love how this interface was designed - it was easy to come up with a cursor format that works well for our records, and the helpers async-graphql offers make it simple to roll out to everywhere we need pagination support.
  • Websockets + subscriptions. These are the backbone of exposing real-time metrics (and after https://github.com/timberio/vector/pull/6363, events). It's so nice being able to return an impl Stream<Item = T> and it just work.
  • Above all, the incredible support we've received from @sunli829 personally when we ran into issues, or had feature requests. I don't think we've ever seen an issue go more than a few hours without being resolved. A million thanks 👍

I'm very excited by this project and where it'll go next. Thanks for making our lives (and my life in particular) easier!

leebenson avatar Feb 10 '21 08:02 leebenson

While not on production yet, here is a simplified version of a future production app slimmed down for a meetup.

The goal was to make a presentation for Rust Lang Los Angeles which uses SQLx, PostGreSQL, Actix and async-graphql: https://github.com/camsjams/rust-actix-graphql-sqlx-postgresql

This showcases

  • Federation with async-graphql
  • Federation using Actix
  • Database usage via PostGreSQL and SQLx
  • Seamless UUID juggling between GraphQL and PostGreSQL
  • Chrono for timestamps

Thanks @sunli829 awesome library!

camsjams avatar Feb 10 '21 19:02 camsjams

Not in production yet, but close. A very simple and small service talking to a redis cluster is in the works. A great library, thank you!

argl avatar Feb 16 '21 23:02 argl

Still a work in progress, I'm working on a website to catalogue and describe scuba diving sites.

The stack is as follows:

Backend:

  • Actix Web
  • Tokio Postgres
  • Async-graphql

Frontend:

  • React
  • Apollo

cetra3 avatar Feb 18 '21 08:02 cetra3

We're using it at Kairos Sports tech, using it in combination with graphql mesh to move some parts of an existing ruby on rails grahpql API. Not in production yet but will be in the next few weeks

dhendrie91 avatar Feb 22 '21 14:02 dhendrie91

At AxieInfinity, we are using Async-graphql on production sites.

Our GraphQL back-end serves multiple query sources:

The story of mine back into the middle of 2020, while we were migrating our GraphQL to Rust. There are only 2 options at the time, and I decided to move with async-graphql, that can work well with Search Engine async libs (Elasticsearch) and can integrate with Apollo Federation gateway.

Until now, we're still following Async-graphql development progress, and just update to the latest version recently. Thank you for your effort and time @sunli829 .

phuocthanhdo avatar Feb 28 '21 02:02 phuocthanhdo

We use it at Nando's for our capacity management services, both client and cluster side, clients can request restaurant capacity times which is a GQL call. In cluster, the capacity tracker listens to a confirmed orders subscription, does some validation, then calls the record order mutation in another service, which will then adjust the capacity accordingly :)

holbewoner avatar Apr 20 '21 14:04 holbewoner

Sweet, I love my chicken with a side of GraphQL 😄 Love these kind of infrastructure insights -- thanks for sharing!

leebenson avatar Apr 20 '21 14:04 leebenson

(P.S @nandos -- If there's a GraphQL mutation for requestBlackCard, I'll happily test that for you 😉 )

leebenson avatar Apr 20 '21 14:04 leebenson

(P.S @nandos -- If there's a GraphQL mutation for requestBlackCard, I'll happily test that for you 😉 )

🤫

image

holbewoner avatar Apr 21 '21 12:04 holbewoner

Haha, that's great @nandos... now if you could just fwd over the endpoint URL and create an Okta login profile for me, I think our work here is done 😄

leebenson avatar Apr 21 '21 12:04 leebenson

We are using it at Prima.it and we have a couple of microservices actually running in production

cottinisimone avatar Apr 22 '21 08:04 cottinisimone

We use it in production at Voxjar for our entire API.

mwilliammyers avatar Apr 24 '21 05:04 mwilliammyers

We're using async-graphql and graphgate in production at Zenly. It's powering a simple view of all the available data across the services, we are using it for months 🙂 No issue so far, +200k/s with a p999 under 50 ms, thank you @sunli829 😉

QuentinPerez avatar May 02 '21 12:05 QuentinPerez

It's not a company, but wanted to highlight that I use it in two projects that are getting started.

  1. entity-rs via entity-async-graphql integration
  2. vimwiki-rs via vimwiki-server, a binary that serves vimwiki document elements over graphql (graphql query/mutation objects and graphql data structures)

I just released version 0.1.0 of the vimwiki crates with an end goal of rolling out a note-taking service backed by GraphQL queries via https://vimwiki.app. Entity crates are slowly improving, including providing generated filters to use when querying data like this:


#[gql_ent]
pub struct Paragraph {
    /// The segment of the document this paragraph covers
    #[ent(field(graphql(filter_untyped)))]
    region: Region,

    /// The content within the paragraph as individual elements
    #[ent(edge(policy = "deep", wrap, graphql(filter_untyped)))]
    contents: Vec<InlineElement>,

    /// The content within the paragraph as it would be read by humans
    /// without frills
    #[ent(field(computed = "self.to_string()"))]
    text: String,

    /// The page containing this paragraph
    #[ent(edge)]
    page: Page,

    /// The parent element containing this paragraph
    #[ent(edge(policy = "shallow", wrap, graphql(filter_untyped)))]
    parent: Option<Element>,
}
image

chipsenkbeil avatar Jun 08 '21 01:06 chipsenkbeil

I'm using async-graphql for my side project (will become production soon). Switch from Flask/Python. So far so good.

cptrodgers avatar Jul 08 '21 17:07 cptrodgers

Not a company, but I made an open-source wrapper around async-graphql called Diana (no relation to the Julia one!) that connects a serverless queries/mutations system with a serverful subscriptions system. Couldn't have done it without this, it's a fantastic project you've got here!

arctic-hen7 avatar Jul 09 '21 02:07 arctic-hen7

I'm using it at Brevz! it's really an awesome crates to use, incredible project!

Miaxos avatar Jul 21 '21 15:07 Miaxos

We use it at Nando's for our capacity management services, both client and cluster side, clients can request restaurant capacity times which is a GQL call. In cluster, the capacity tracker listens to a confirmed orders subscription, does some validation, then calls the record order mutation in another service, which will then adjust the capacity accordingly :)

oh nice my fav chicken restaurant uses rust. Now I have even more respect for you guys.

Suya1671 avatar Jul 25 '21 18:07 Suya1671

We're now running async-graphql in production @ thorndyke hosted off an AWS Lambda function. A ground up rewrite from a previous TypeScript implementation with significantly better performance and developer experience.

oeed avatar Sep 06 '21 04:09 oeed

Although not running a company, I have been using async-graphql on my hobby website (Github), a forum on lateral thinking puzzles. The website has been running stably without any crash since a year ago when I migrated the backend to rust. Subscription is really a thing to me and your project is the first to get it implemented in rust. Thank you for your work!

heyrict avatar Sep 15 '21 05:09 heyrict

We're using async-graphql at Grafbase (https://grafbase.com). Grafbase is a data platform for developers that enables you to deploy globally fast apps in seconds.

fbjork avatar Dec 10 '21 10:12 fbjork

At futuREproof, we use async-graphql to extend Hasura's graphql-engine with custom functionality. This is in production and works great!

In addition, we use async-graphql extensively to mock other graphQL api's in the tests of the above graphQL extensions (but the test code itself is obviously not 'in production').

bverhagen avatar Jul 07 '22 17:07 bverhagen

Most of the back-end services in our company Biznet Gio Nusantara uses Async-GraphQL.

However most of them are not public https://github.com/BiznetGIO.

azzamsa avatar Jul 22 '22 07:07 azzamsa

Not a company, nor in production, probably not even a good use of this library, but this is a Rust full-stack study which involves async-graphql: https://github.com/rongcuid/gqlforum-rs

I won't say this is the best way to use the library, as I was exploring in the process.

rongcuid avatar Jul 31 '22 23:07 rongcuid

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

github-actions[bot] avatar Sep 27 '22 02:09 github-actions[bot]

Disable stale bot here.

frederikhors avatar Sep 27 '22 06:09 frederikhors

Disable stale bot here.

This robot is not smart enough.😂

sunli829 avatar Sep 27 '22 07:09 sunli829

https://www.plan3.aero Has a large (around 80k lines with everything included like tests and more) GraphQL API that started as a Juniper project but was fully migrated to async-graphql around a year ago

arnarthor avatar Nov 25 '22 15:11 arnarthor

@sunli829 I think this non-actionable issue should be moved under discussion.

azzamsa avatar Dec 08 '22 06:12 azzamsa