-
Notifications
You must be signed in to change notification settings - Fork 428
Build on top of node.js streams #17
Comments
I think this leads to a proposal for a common GraphQL transport. Currently, most popular one it the HTTP transport (and a kind of protocol) comes with express-graphql. We can do more to build a better graphql transport with query caching, streaming and so on. Basically, this is more of a question we should answer together as a graphql community, not just for Apollo. |
I totally agree, we should find something that will work for all GraphQL. Are there any proposals for this? Also, would it instead be better to have a non-streaming option so that you could build on any transport that can do request/response? |
I think there is no such project. Lee of one one from FB said once their version of GraphQL has caching and so on. He said, they are planning to bring it to the open source version as well. So, I think there is a open opportunity to build a common spec where anyone could use. We could work with Graphene, Sangria and Reindex for this. (of course with FB :) ) |
Yeah, great idea. We are actually having the author of Graphene over for lunch tomorrow, would be cool to talk to some of the others as well. I heard Sangria in particular has some really cool stuff going on. |
There's a Sangria-Ion for Ion marshalling Maybe Ion would solve a lot of GraphQL's protobuf, caching, static -> dynamic typing, universal schema, storage and message routing issues in a more p2p context. http://tutorials.jenkov.com/iap/ion-vs-other-formats.html Maybe maybe deal with graphs more general than trees by using JSON-LD http://json-ld.org when a client has not opted in to some of Ion's more circular dependency hell-ish features. Just a thought. |
Yeah exploring alternate transports for normalized data is definitely something we want to do once we build out the basic functionality. The Relay/GraphQL people seem to be interested in that as well. |
Might solve some of Sequelize's issues with GraphQL to do it this way graphql/graphql-js#290 |
Hi just learning by ozzmosis these days (from my fellow comrades and heroes visible in the community). I'm a little lost here, being still formulizing alpha, with limited docs, time limits and distractions of other topics/projects etc. and looking for Simple Solutions to complex problems too. For me "one great way" is all I need, and not multi datasource integration to legacy methods, so not sure this wont be overkill but hoping its more like rather good templates and guildlines. I know its all idealistic and not so realistic, more futuristic and visionary as an indy dev thinking ahead seems the only way to not be left behind. Also I'm using 3D with THREE.js and find the DOM irrelevant. Alright that's just a quick hello with an orientation bio, to help understand my position, direction and goals. Non-pooling bidirectional WebSockets sounds like progress to the future, as is formulating thoughts on DDP integrated with schema.org. I found the ion "symbol tables" interesting too, thanks. Diffing and signing, are decentralized points in general as well (with deeper possibilities to contimplate). So really keeping things simple and more to the point "pure" seems like the direction I hope this project will help give me guidence to achieve. In example, I hope to sync a 3D objects attributes by passing back JavaScript objects within objects that can inject and overwrite code changes directly writing and reading with the local cache Diffing ideas that transport over the more direct non-polling WebSockets and some efficiencies the transport layer handles like binary compression symbol tables etc. that are hidden from the developer. This then extends to visualizing the code and being editable in an interactive 3D way. Signed Diffs and usage tracking provide Etherium type contracts to pay out those that do the real work. Alas in a global quorum decentral concepts like Etherium also become irrelevant thanks to the larger quorum, which would take a larger manifesto to explain better. All you need is the digital signing authority in the block chain and that can be rolled over as edits and uplates aré continuous. Also I see git hub iteration and 3D code visualization parsing of code as critical components. "In the transition time, a hybrid will exist." - Master James |
@MasterJames to be honest, I'm having a hard time reading your comment due to limited formatting. Could you split it up into sections with headings and paragraphs? My eyes get lost because of the large volume of text, but it looks like you have some interesting points. |
Yes sorry my psychotic Manifesto really does need a separate thread or whatever sorry to hijack. In these times our problems have become more complicated. It takes complicated solutions to solve complicated problems and to explain them is well... complicated bother to write and read. Consider it a trial run, or first draft etc. maybe with time you'll find and interpret something that can be integrated out of a more clarified working draft of my lofty wishful thinking. |
After another month of searching for alternatives to the overly tardy GA of AWS' EFS. I found someone inline with my thinking. I fear the main original goal of Meteor, "simplicity", might be getting subverted by the recent attentions it's acquired due to popularity and the new desire to spend %90 percent of effort to satisfy the last %10 of everybody else's needs that possibly one could say Apollo represents. Anyway a Distributed Shared File System functioning with duality as the transport & reactive datastore is this way forward in my opinion. One to also help try to dissolve the undesirably dirty word "complexity". So I'm just saying don't loss track of that notion in the headstrong march towards the singularity. |
@MasterJames: I could not agree with you more. |
I think so :-) Because despite how much I like IPFS I don’t see how it helps the original issue of using node.js streams in Apollo. |
Sorry mquandalle didn't know you were listening to 17 with such focused intent. It's more of a new starting point for my admitantly blurted out rant maybe as an explanation or appology. Peace and good will to you too. It's actually great for steams because all files are broken into separate cat-able pieces/blocks. A brilliant solution really. |
In regards to streaming in ipfs i can't say this makes things any clearer for me but maybe someone with the time and foresight will find it useful. |
@MasterJames Would you be willing to start a repository for us to discuss some of these things? Just point me to it and we can talk. |
Hi @venturecommunism I'm glad you have some interest to follow this up. Thanks for making an effort. |
Probably for maximum compatibility it would be great if data layer would be build on top of node.js streams. Then one can simply use any node.js stream as a transport layer. This could build into many community efforts to port node.js on top of websockets, webrtc, IoT protocols and so on.
The text was updated successfully, but these errors were encountered: