mattkrick / meatier

:hamburger: like meteor, but meatier :hamburger:
3.05k stars 173 forks source link

RPC functionality #40

Closed abastardi closed 8 years ago

abastardi commented 8 years ago

Have you considered adding RPC functionality, similar to Meteor methods?

Also, have you looked at deepstream.io as a possible alternative to SocketCluster? It appears to include an RPC mechanism as well as integration with RethinkDB.

mattkrick commented 8 years ago

Thanks for this, client-side caching/realtime data fetching is probably the fastest moving area of the JS ecosystem, and where the JS community has chosen some clear winners in other areas (react for frontend, webpack for building, etc.) The data/transport layer is still the wild west & I'd love a list of things like deepstream to compare and see if there's a clear winner. If you know of any other services like this one send em my way so we can compare & pick the best.

My ideal solution would:

RethinkDB is coming out with something on the client, which I'm really excited about, although that would kill the whole "client is database agnostic" approach that I've got going on right now.

abastardi commented 8 years ago

Thanks for the reply. Sounds like some great ideas.

I'll keep an eye out. So far, deepstream is the only thing I've seen that seems somewhat comparable to SocketCluster (the deepstream Github repo hasn't been too active recently, but they have announced that they're working on a hosted platform). Regarding RPC specifically, it appears avs-rpc supports SocketCluster.

RethinkDB is coming out with something on the client, which I'm really excited about, although that would kill the whole "client is database agnostic" approach that I've got going on right now.

Yes, I read about their plans -- interested to see what they come up with (according to their timeline, should be soon). It sounded like they eventually hope to support graphQL as well.

niallobrien commented 8 years ago

Anyone got any further info on what RethinkDB are coming out with exactly & when? Thanks.

mattkrick commented 8 years ago

From my understanding it's a package allowing you to write something like r..insert directly from the client, and will later be pluggable into graphql, but I'm not in the beta group so I don't know any details. I'm slowly rewriting meatier using graphql and it's already pretty painless, so I'm not sure what they're gonna improve unless they offer a really intelligent client side cache

On Fri, Jan 15, 2016, 5:55 AM niallobrien notifications@github.com wrote:

Anyone got any further info on what RethinkDB are coming out with exactly & when? Thanks.

— Reply to this email directly or view it on GitHub https://github.com/mattkrick/meatier/issues/40#issuecomment-171943219.

niallobrien commented 8 years ago

Thanks @mattkrick - I know they mentioned the fact that they weren't overly happy that the GraphQL spec wasn't fully where they'd like it to be.

abastardi commented 8 years ago

Anyone got any further info on what RethinkDB are coming out with exactly & when? Thanks.

Regarding timing: https://github.com/rethinkdb/rethinkdb/issues/3711#issuecomment-169460842

mattkrick commented 8 years ago

Yeah, it's still a young spec and needs a little more work, especially on error handling, but overall it's pretty great and a LOT simpler than bloggers make it seem. Relay is the piece that needs the bulk of the change.

On Fri, Jan 15, 2016, 8:28 AM abastardi notifications@github.com wrote:

Anyone got any further info on what RethinkDB are coming out with exactly & when? Thanks.

Regarding timing: rethinkdb/rethinkdb#3711 (comment) https://github.com/rethinkdb/rethinkdb/issues/3711#issuecomment-169460842

— Reply to this email directly or view it on GitHub https://github.com/mattkrick/meatier/issues/40#issuecomment-171974654.

mattkrick commented 8 years ago

After reviewing deepstream it doesn't look flexible enough for what I want to do here. Deepstream is a really cool idea & I could see myself using it in another project, but the client cache & server are tightly coupled & non-extensible. I'm holding out for a solution that let's me use a redux store as a cache.

abastardi commented 8 years ago

After reviewing deepstream it doesn't look flexible enough for what I want to do here. Deepstream is a really cool idea & I could see myself using it in another project, but the client cache & server are tightly coupled & non-extensible.

Got it. Have you considered adding SocketCluster compatible RPC functionality, such as avs-rpc?