191 karma · joined June 1, 2017
https://github.com/dosco/super-graph
I started out not liking GraphQL cause it didn't really reduce the code I needed to write but on digging deeper it seemed to be the best way to represent a data query from an app now only if something could convert that into SQL automagically. This was the motivation for Super Graph.
GO is a great language for web development (especially API backends) and Super Graph is a natural fit. Using it as a library gives you unlimited flexibility. The link below shows you a GraphQL example fetching posts, comments, threads, votes, etc all related imagine the code you don't have to write and maintain. when you use Super Graph.
Super Graph can learn your DB schema and relationships and automatically compile GraphQL to a single efficient SQL query. Use it as a standalone service or a library in your own code. It also works with Rails auth, JWT, Firebase auth, supports OpenCensus tracking and tracing, designed to be high-performance and startup in few milliseconds fro scale to zero environments. It works with all kinds of DB relationships including polymorphic associations, JSON and Array columns, and much more.
Elm let me a single programmer build this in a couple weeks with no runtime issues even after major refactoring to add new features. It was such a pleasure to work on.
helm install https://raw.githubusercontent.com/dosco/sanfran/master/helm-...
It can be a way for anyone within the organization to deploy a function they need. For example marketing needs a quick endpoint to handle Mailchimp registrations or for Stripe payments. The function will not take up resources on the cluster until its needed. Functions will run in a isolated, devops free environment.
Technically you're not running on top of another framework, your javascript function is just running in a NodeJS instance thats managed there are no extra layers. Your NodeJS instance is running on Kubernetes but then why do I need Kubernetes is an entirely different discussion.
The main focus of its design was fast function startup time and horizontal scaling.
Fast function startup is done with a combination of pool of warm containers and instant container recycling.
As for horizontal scaling functions can themselves scale horizontally in high QPS situations and for large deployments every micro-service that makes up SanFran can itself be scaled horizontally.
Currently working on using machine learning to predictions to manage warm container pools.
Even today surprisingly few people know about it. So I finally authored and published a book on building products using the Google Cloud this year. (Free to read on the site)