Architectures for Modern Web Applications
Modular tech stacks enable teams to work flexibly and quickly adapt to changes in scope.
Guest Post by our community member Jesse Martin
It’s been a wild year for the growing technology. Enterprise adoption continued to grow at a remarkable pace, the legal details which are oh-so-important to those SLAs and RFPs started to solidify and the stack of service providers became ever more robust. Whether you want to roll-your-own or you just want to roll-out in the next 5 minutes - there’s something for everyone.
The basic concept here is that you can combine multiple schemas into a unified layer. Think of it as composing micro-services into a single API where you need fine-tuned control in handling things like naming conflicts but don’t want to burden the backend team with having to create some monolith API that rules them all. You can query hobbits, dwarves and wizards as individually as you want, or you can abstract their individual parts into a master, middle-earth query layer without losing the agility of developing out your hobbit service independent of the other services. Check out this in-depth article by the Graphcool, now Prisma team for a more thorough introduction.
It wouldn’t be a real open source spec without a fair dose of drama. Boy did the community deliver! Joan Touzet kicked off the party back in early July by noticing issues with the patent rights of most/all of Facebook's open source initiatives. The backlash was quick and wide spread. They even got Matt Mullenweg to chime in!
All in all it seems to have blown over with some helpful summary explanation by Dennis Walsh here and here. TDLR: After some relicensing, you should be just fine to use React, GraphQL or any of the other technologies Facebook releases. The bee in your beer might still be clause 8.6 of GraphQL's new licensing which basically says "he who fails to adopt the spec in one point, is guilty of all," or something like that. #not-a-lawyer
LTLDR (Looks too long, didn't read): http://graphql.org/users/
We saw some really interesting adoption of the spec this year, too! Early in the year, Github released v4 of their API with full GraphQL support. The New York Times did a nice write up about their transition which is part of an overall rewrite/redesign of giant news company. Twitch gave a talk at GraphQL Summit about their transition, as well as KLM and Bynder (for the enterprise minded people in the audience.) This is simply a short sample of some notable companies to join the club this year, but the amount of adoption this year and the total adoption over all is staggering. Again, see the curated user list at the official .org for more info.
After pioneering the middle-layer, Reindex is shutting down its back-end as a service platform. They won't be going far, though, as they are still committed to helping developers adopt the spec and will be open-sourcing much of their tooling in the future. The post mortem can be found here.
Contentful labs (a notable player in the headless CMS space) is rolling out a beta layer for GraphQL. We'll be keeping an eye on them. :)
Amazon pulled a surprise card with the launch of AppSync that includes GraphQL support from the get-go. On the whole, Amazon's adoption of a spec that Facebook has written is pretty much all the validation a technology could want. Only a fool argues with an 800lb gorilla. Nobody argues with two.
GraphQL Summit returned for the 2017 edition and was generally raved about across the industry. With no shortage of heavy-hitters, the excellent playlist can be viewed here. But if you've read this far, you've probably already seen it. Good for you! 2018 is sure to be announced soon, so keep a close eye on the Twitterverse for the announcement.
GraphQL Europe was also a strong representation with tour de force that rivals anything put out from the Valley. When you think about the many challenges that GraphQL can help solve and the intricate complexities of serving Europe's some 730 Million users, you can see why this technology has really taken root! Not to mention some of the world's best GraphQL companies are based here! And 2018 is announced already, so be sure to get your frühe Vogel tickets here.
Dear reader, I respect the community. And I love you. I will not provide a direct link to the Timebelle’s winning performance of Apollo at Eurovision. I just won’t, no matter how good the pun is. I will, however, gladly direct you to Apollo’s fantastic 2.0 launch of their client product! Seriously. Big Kudos from us here at GraphCMS. Particularly interesting is the ability to intercept the request and change where you are fetching your data from. This turns GraphQL into some kind of universal query language for the front-end.
Graphcool is cooler than ever. We have a particularly fond relationship with the Graphcool peeps. Not just because our backend is built on their technology stack and we are both HQ’d in Germany, but their product is fantastic, too! They open-sourced their serverless-framework, which makes building out your own GraphQL service a short
init away from reality. We highly recommend checking out their product.
The “other” great Gatsby, while not new this year, is enjoying a considerable moment in the lime-light with many significant players in the front-end world adopting the platform for their websites. With an elegant API and the built in declarative beauty of GraphQL for your templating tasks, its hard to not get a little excited about this formidable entrant in the web maker space. Oh, and we have a plugin to interface with them directly!
So GraphQL looks like it's here to stay. What problem is it solving, where's it going, why all the excitement?
Data transfer is expensive. The amount of data we are generating has been talked about at length. In one recent example, I downloaded my year-to-date Fitbit tracking data. Simply downloading less than 1 year of heart rate time-stamp data yields close to 15mb of data. That’s a big file! Now imagine you want to view a year overview of that data. Obviously, no developer is going to ship that much data down the pipe, which is why they build business-case abstractions into the API so you can query just the amount of data that’s needed. Maintaining all the endpoints adds an increasing amount of overhead, an expanding surface area for security issues and documentation to maintain. If it were switched to a GraphQL API, the various apps could simply request exactly how much data was needed for their individual tasks. Define the schema and every data point for every business case is handled.
The spec is evolving with subscriptions and additions like stitching will only increase enterprise adoption. SaaS providers like Graphcool, Apollo and GraphCMS are offering elegant solutions for companies of all sizes to get started today.
API driven business is here to stay. No one is arguing anything different. Private and public APIs from financial services to postal services have revolutionised our productivity and created a level of expected ability that we can’t return from. But many of these APIs are built on large and ageing infrastructure. Consumers want fast and new. Mediated APIs, the middle layer between older monoliths and the newer platforms are on the rise. A notion confirmed by Mark O’Neill, research director at Gartner, at the recent API Days Conference. GraphQL is an excellent entrant to this mediated API space because it allows for endless new implementations without adding the overhead of introducing new endpoints to the existing systems.
For a more in depth take on GraphQL in the market place, you really don’t need to look further than this resource.
The one inherent issue with GraphQL is that it's flexible to a fault. Authentication, data-modelling, redundancy, caching and all the other requirements for the typical database service are more or less up to your fancy. Sometimes choice is a curse.
So what's a dev to do? Fortunately that's exactly the kind of problem we at GraphCMS are trying to solve. Sign up for an account, let biz-dev define the data model in a WYSIWYG editor and have a fully fleshed out schema ready to go with all the wonderful perks of GraphQL. What does it matter if they stuff extra fields of data in the backend that will never be used in a hundred years? With GraphQL you get what you ask for, not what the server feels like giving you.
With GraphCMS it’s never been easier to get started. Sign up for a free account today to start playing around with the power of GraphQL and let us handle details for you. Once you try GraphQL’s powerful new primitive on data interchange, you won’t want to work with anything else!
Thanks for reading!
Modular tech stacks enable teams to work flexibly and quickly adapt to changes in scope.