Apollo Server 2 is out! 🚀

So Apollo Server v2 is out:

I hope that we’ll have integration into Meteor soon.

10 Likes

The Meteor integration is already done in my “laboratory” aka laptop for the 2-beta. It’s actually quite easy and it will be pushed to cultofcoders:apollo and it will work with no BC breaks! Cheers!

10 Likes

So is it now possible to execute gql server-side on an SQL database?

I guess that I will have no excuses left, not to start with GraphQL, when that happens.

We’re already working extensively with Meteor & Apollo and we’re very happy about it, people are catching up with it super fast. And right now we have the perfect stack, which is solid, self-documented, super-scalable and we can build high-level enterprise apps on.

7 Likes

Sounds nice @diaconutheodor. Does the production notice here https://www.apollographql.com/docs/graphql-subscriptions/external-pubsub.html have any relation to your meteor apollo integration package? Also is there an example repo available?

That “production notice” states that using standard pubsub only works only on one server. However, we managed to bridge Meteor’s reactivity with Apollo, and works with RedisOplog. So we’re talking scalable reactivity on Apollo.

As an update:
I’ve completed the integration, it’s not published yet. However! I want to add a suite of tests to make sure authentication blending works flawlessly and I need to think about a strategy to manage npm deps. And then there’s the other issue of having Meteor’s websockets (DDP) side-by-side with Apollo websockets. I’m working on a DDP-Silencer package that builds on cultofcoders:fusion so it works flawlessly without warnings.

So yes, Apollo Server 2 works with Meteor, with websockets, with everything, this is great! :smiley:

3 Likes

@diaconutheodor how about using the same websocket connection (that Meteor establishes) for Apollo too, like ddp-apollo does?

@gaurav7 that is a good idea and I definitely took it into consideration, however my reasoning is that, by using DDP you are only adding a new layer of complexity over the websocket communication, and basically you would go again on the “Non Standardised Route”.

My vision for Meteor is to become the bundler, the user system, the packaging system. It’s such an advanced framework even without “DDP, Blaze, Atmosphere”, it does so many things very simple.

3 Likes

@diaconutheodor thanks so much for your work!! I definitely agree with you on the web-socket topic. I think it would be awesome for any application that can run apollo-client to take advantage of how awesome Meteor is! I think using Apollo web-sockets opens up Meteor reactivity on platforms like React Native. Which is awesome!

2 Likes

Sure, but in this case wouldn’t it be an implementation detail? Then maybe using the technique of ddp-apollo would help you do things more gradually. But yeah, I agree that as a final goal it would be desirable to not keep it locked-in to ddp

@yellowspaceboots indeed, we’re actually using Meteor’s reactivity on React Native! Works flawless it’s incredible.

@gaurav7 true, for transitioning from existing Meteor apps I always recommend ddp-apollo, so you can have Meteor’s API side-by-side.

1 Like

That’s what I am using. react-native with apollo-client and apollo-live-client against @diaconutheodor’s cultofcoders:apollo backend. Works beautifully. Reactivity and all…

2 Likes

@diaconutheodor, any ETA on publishing this?

@ujwal it is almost done i’m looking at 2-3 hrs left and it will be published this week. There are still some weird pieces left and its related to how tight ddp is integrated in Meteor. They were present in the prev version too, but we need to solve them.

I created https://github.com/cult-of-coders/ddp-silencer so we can have DDP enabled in development or testing mode, but disabled in production if we work with Apollo subscriptions. (No more falling back to XHR polling) And it also allows you to use Methods via HTTP, opening the path to having Meteor as a super-fast Node 8 LTS server. This is cutting edge.

DDP is useful for client restarts and testing drivers such as cultofcoders:mocha

I’m very close to releasing the new version. However, I could not have done it without some small BC breaks. Will have to write in MIGRATION but you should be able to quickly adapt your initialize and that’s it.

6 Likes

Thank you very much man!!! You’re the lighthouse for us in the community.

1 Like

Boom.

2 Likes

Thanks for these integrations and making Meteor so great and fun to use again. Any plans updating the Meteor Tuts website with these awesome integrations in the near future - in a granular way for starters, as the GitHub readme are still hard to comprehend for some of our devs? I believe the directive package needs more documentation improvement explaining the @ mappings to mongo collections and fields. Still waiting for the other planned chapters

2 Likes

Hi @diaconutheodor, I just upgraded to 0.5.1 and it broke my app :worried:. My client is react-native and the web socket link seems to drop after I log in. I am still investigating. If I revert to 0.4.2 and Apollo 1.4.0, everything works. I have logged am issue on GitHub. I noticed that the endpoint for subscriptions charged from “subscriptions” to “graphql”.