Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Feathers 4: A framework for Real-Time apps and REST APIs (feathersjs.com)
100 points by malloryerik on Sept 15, 2019 | hide | past | favorite | 19 comments


As a maintainer of another web realtime server (deepstream.io), I got to say FeatherJS is an inspiration in terms of documentation and tutorial standards. I spent quite a bit of time watching their live streams on youtube and browsing through their pages. I hope/am working to someday reach that level of clarity!


yasserf, keep up the good work, deepstream is great: fast, flexible, simple and solid! Although must say that your previous docs where way better than the current version. Why don't you keep the same format?


Thanks! Are you referring to the docs on deepstreamHub? If so it’s because we needed to separate what the OS version does better and I used the older OS website as a starting point (except now using Gatsby).Otherwise the docs were copied over verbatim minus navigation. Looking forward to feedback in a week or two time when that’s done!


I meant the docs UI, the content is the same but the interface is weak. Good to know there us a new version coming


Might want to mention deepstream.io on your HN profile


Will do, cheers


Feathers is exactly what I want to see in a JavaScript library. It is not overly opinionated: far from it. It implements concepts that are sound, standing the test of time. It solves a few specific problems well. These are ideals all library creators should strive for.


Major kudos to the Feathers team on the release. FeathersJS was my first introduction to open source, and sets a very high standard in terms of documentation quality. Congrats, and looking forward to more to come!


I tried the last feathers and my problem with it was it seemed so purely REST that it was unusable. Every object in your database gets CRUD endpoints, and if you need something other than CRUD, you are in for a tough time. Is this the case, or was I not understanding it?


The FAQ addresses this question here. tl,dr: Yes, you can add custom methods: https://docs.feathersjs.com/help/faq.html#how-do-i-create-cu...

If you want to expose the custom methods to clients, you can use this add-on package: https://github.com/arve0/feathers-custom-methods


I've been using Feathers for a bit, and it's really nice. There's a few lock-ins I ran into that required sort of hacking my way out, but (for the most part) it's been amazing.

Also, for whatever a contextless strangers opinion is worth, I highly recommend avoiding Loopback.


The coolest thing about Feathers for me is that it was developed locally (Alberta, Canada).


I don´t get the "Real-Time" part. Are the API requests ensured to be responded by a given time? That would be sensational. Is it meant to be compatible with the newest Linux kernel shipping RT out-of-the-box? ;)


The real time feature is 2-fold:

1. Feathers supports websockets, so you can push data to clients as the data is created/updated, etc.

2. The Feathers server can decide what types of events to send to the client. If you have multiple servers, you can keep the events in-sync by using redis/activemq with the feathers-sync module.


This is "Web realtime" (https://en.wikipedia.org/wiki/Real-time_web) not real real-time.


Why would you use this over using your own websockets convention. Also how does it handle mass connections? you would need redis or similar?


You would use it in conjunction with the concept of Services [0]. Services are essentially are a group of CRUD operations that can be exposed over various transports: HTTP(s), Websockets, etc.

You can use services with Feathers' Event Emitters [1] give you a service-level abstraction for sending data over websockets. If you want the full flexibility of using websockets directly-- by all means, do so! A common use case, however, is to send updates as service objects are created, updated, or deleted over websockets for real-time applications. You might take that updated record, insert it into your state management system (e.g., Redux), and then use your UI library (e.g., React) to repaint the user's screen. Feathers doesn't care what state management or UI library you use.

[0]: https://docs.feathersjs.com/api/services.html#service-method...

[1]: https://docs.feathersjs.com/api/events.html#eventemitters


this is so cool! ️ where can i know more about the team behind feathers and how it is run/funded? i love learning how long running OSS like this operates.


High-level funding information is available on the FeathersJS github homepage [0]. The core team is composed of the top contributors [1].

[0]: https://github.com/feathersjs/feathers

[1]: https://github.com/feathersjs/feathers/graphs/contributors




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: