small medium large xlarge

Craft GraphQL APIs in Elixir with Absinthe

September 06, 2017

Time for something new.

GraphQL takes a different approach to building web services. The world keeps getting more and more complicated: your business domain is rich and interconnected, and your API should be, too. This book will show you how to tame that beast by using Absinthe to craft your own GraphQL APIs in Elixir. You'll learn what that means, why it's important, and—most importantly—how to do it effectively.

"BUT WAIT!" you exclaim, "THIS IS ALL STRANGE AND NEW." Well, yes, it is at first. Read the book and then it won't be strange or new any longer.


Craft GraphQL APIs in Elixir with Absinthe: Flexible, Robust Services for Queries, Mutations, and Subscriptions

GraphQL is a new way of structuring and building web services, and the result is transformational. Find out how to offer a more tailored, cohesive experience to your users, easily aggregate data from different data sources, and improve your back end's maintainability with Absinthe's declarative approach to defining how your API works.

Build a GraphQL-based API from scratch using Absinthe, starting from core principles. Learn the type system and how to expand your schema to suit your application's needs. Discover a growing ecosystem of tools and utilities to understand, debug, and document your API. Take it to production, but do it safely with solid best practices in mind. Find out how complexity analysis and persisted queries can let you support your users flexibly, but responsibly too. Along the way, discover how Elixir makes all the difference for a high performance, fault-tolerant API. Use asynchronous and batching execution, or write your own custom add-ons to extend Absinthe. Go live with subscriptions, delivering data over websockets on top of Elixir (and Erlang/OTP's) famous solid performance and real-time capabilities.

Transform your applications with the powerful combination of Elixir and GraphQL, using Absinthe.

Now available from

September PragPub Magazine

What’s in the September issue of PragPub? Three code-rich feature articles, a thoughtful essay by Ron Jeffries, and contributions from our regular contributors. Except Marcus, who seems to think moving into a new home, welcoming a new member to the family, finishing a major project for the year, and a scheduled vacation justify taking a break for this month. We think so, too.

All this year Venkat Subramaniam has been teaching us how to refactor our Java code to functional style, taking advantage of functional features in Java 8. This month Venkat looks at common operations for processing text files in the imperative style and then explores how to perform those operations in the functional style.

Josh Stella, Chris Grim, and Jasper Van der Jeugt work at Fugue, whose product, also called Fugue, automates cloud operations. You could call it an operating system for the cloud. An operating system needs a system language, and for Fugue that’s Ludwig. If you’re curious what a language for managing the cloud looks like, their article in this issue should satisfy your curiosity.

Mike worked with Dmitri Sotnikov on his book Web Development with Clojure and can testify that he’s a bonifide expert on using Clojure to build websites. This month Dmitri gives a hands-on explanation of how to use Re-Frame, a tool that improves performance by virtualizing the DOM and leveraging the power and ease of use of a modern functional language.

Ron Jeffries has been developing software longer than most people have been alive. He holds advanced degrees in mathematics and computer science, both earned before negative integers had been invented. His teams have built operating systems, compilers, relational database systems, and a large range of applications. Ron’s software products have produced revenue of over half a billion dollars, and he wonders why he didn’t get any of it. This month he explores an idea that could be a driver for successful software development in the Agile style.

Also in this issue, Johanna Rothman writes about accounting for performance with flow efficiency; Antonio Cangiano finds a book on concurrency in the Go language that he likes, as well as 29 other new programming books you should know about; and John Shade offers his thoughts on the dangers of facial recognition.

We hope you enjoy it!

Now available from

Upcoming Author Appearances

  • 2017-09-11 Johanna Rothman,
    Agile Prague
  • 2017-09-11 Johanna Rothman,
    Agile Prague
  • 2017-09-11 VM Brasseur,
    Linux Foundation Open Source Summit North America 2017
  • 2017-09-13 Diana Larsen,
    Agile Brazil 2018, Belém, Para, Brasil
  • 2017-09-22 Rachel Davies,
    Agile Greece Summit, Athens
  • 2017-09-26 Diana Larsen,
    UX Strategy Day Zürich, Zürich, CH
  • 2017-09-28 Alex Miller,
    Strange Loop, St. Louis, MO
  • 2017-10-01 VM Brasseur,
    Velocity NYC
  • 2017-10-05 Rachel Davies,
    Software Craftsmanship, London
  • 2017-10-06 VM Brasseur,
    SeaGL 2017
  • 2017-10-07 Randall Koutnik,
    Silicon Valley Code Camp
  • 2017-10-09 Ian Dees,
    Pacific Northwest Software Quality Conference (PNSQC), Portland, OR
  • 2017-10-23 VM Brasseur,
    All Things Open 2017
  • 2017-10-27 Chris Adamson,
    Swift by Northwest
  • 2017-10-29 VM Brasseur,
    LISA 2017
  • Don't Get Left Out

    Are your friends jealous that you get these spiffy email newsletters and they don't? Clue them in that all they need to do is create an account on (email address and password is all it takes) and select the checkbox to receive newsletters.

    Are you following us on Twitter and/or Facebook? Here's where you can find us and keep up with the latest news and commentary, and occasional discounts:

    Tell your friends! Tweet this

    Follow us on Twitter: pragprog</a>, <a href="">pragpub, Andy Hunt @PragmaticAndy.

    Coming Soon:

    • Python Testing with pytest: Simple, Rapid, Effective, and Scalable
    • Adopting Elixir: From Concept to Production
    • Liftoff (audio book)
    • Programming Crystal: Fast as C, Slick as Ruby
    • Reactive Programming with RxJS 5: Untangle Your Asynchronous JavaScript Code
    • Complex Network Analysis in Python

    Recently Released:

    Thanks for your continued support,

    Andy Hunt
    Publisher, Pragmatic Bookshelf

    Books • eBooks • PragPub Magazine • Audiobooks and Screencasts