Feathers: How it works and does it scale?

Created on 7 Nov 2016  Â·  7Comments  Â·  Source: feathersjs/feathers

I cannot find any information about how "real-time thing" works in feathers and does Feather.js scale to 2-3 instances on different machines? I've read source code, but still do not understand it.

I've found

Feathers does it at the service layer

but how Feathers actually do this? Is it store all service-driven changes in internal variable? Or polls DB?

For example, Meteor polls DB or reads MongoDB oplog (which includes all DB changes) and stores DB's slices to sync them on local DB on client. it's clear how it scales.

But how does it work in Feathers?

Most helpful comment

Some references for Express and Socket.io:

More Feathers specific:

The last point is still open but basically Feathers doesn't really care if your service is a database or makes request to a remote service or even another API. So it is already possible to distribute each service onto its own instance and connect them using Feathers client.

The Auk docs will also contain a section about how it all fits together (see https://github.com/feathersjs/feathers-docs/issues/251).

Closing since this is a pretty open ended question and I linked several resources and related more specific issues.

All 7 comments

I think I've found information about "how it works" — http://stackoverflow.com/questions/32299935/does-feathersjs-use-the-mongo-oplog-for-live-data-when-mongodb-is-the-databas

Still it's not clear how it scales.

Feathers is just a small wrapper over Express and Socket.io so anything that applies to scaling those works for Feathers as well.

The only Feathers specific scaling related plugin is feathers-sync which allows to synchronize events across multiple instances of the application (using MongoDB or Redis as the hub).

@daffl do you have any references about express and socket.io scale ?

Some references for Express and Socket.io:

More Feathers specific:

The last point is still open but basically Feathers doesn't really care if your service is a database or makes request to a remote service or even another API. So it is already possible to distribute each service onto its own instance and connect them using Feathers client.

The Auk docs will also contain a section about how it all fits together (see https://github.com/feathersjs/feathers-docs/issues/251).

Closing since this is a pretty open ended question and I linked several resources and related more specific issues.

Thanks. feathers-sync is exactly what I was looking for. May be mention it in docs?

Definitely. It needs some final polish but we'll definitely include it in the documentation for the next release.

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue with a link to this issue for related bugs.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

rrubio picture rrubio  Â·  4Comments

harrytang picture harrytang  Â·  3Comments

ausir0726 picture ausir0726  Â·  3Comments

NetOperatorWibby picture NetOperatorWibby  Â·  4Comments

corymsmith picture corymsmith  Â·  4Comments