When comparing FeathersJS vs Dropwizard, the Slant community recommends Dropwizard for most people. In the question“What are the best backend web frameworks?” Dropwizard is ranked 28th while FeathersJS is ranked 35th. The most important reason people chose Dropwizard is:
The application can be run and debugged from the IDE without the need to recompile or redeploy the WAR file. This is because a Dropwizard web application creates on main program which starts the jetty container.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Can sync events between different Node instances
Feather can sync events happening in two different Node processes or even servers in real-time. For example: an event happens in server A, the user connected to server B is instantly notified of that event.
This is done through a central Redis or Mongo collection or through a websocket libraries' clustering library.
Pro Easy REST APIs
Through services, Feathers provides instant CRUD functionality, it also can easily expose a RESTful and real-time API through HTTP/HTTPS and websockets.
Pro Can be integrated in an existing ExpressJS project
Since Feathers itself is built on top of Express (it's a thin wrapper over socket.io, primus and Express) and because of Feathers' highly modular nature, it's very easy to integrate Feathers in an existing Express project.
Pro Plug-in any feature you need
Feathers makes extensive use of modules (which are called Feathers services). These services work like ExpressJS middleware and can be used with app.use('/path', serviceObject)
.
Services help developers keep their applications modular and as minimal as possible, without any unnecessary libraries or bloat.
Pro Support for different socket transports
FeatherJS uses primus which is a universal wrapper for real-time frameworks. Through primus you can easily choose which socket transport you want to use.
Pro Enhanced productivity and less timewasting
The application can be run and debugged from the IDE without the need to recompile or redeploy the WAR file. This is because a Dropwizard web application creates on main program which starts the jetty container.
Pro Application metrics integrated into the framework
Dropwizard comes with application metrics integrated out of the box. These metrics provide a lot of useful information such as request/response time.
For example, to get the execution time of a method, the @Timed
annotation is used.
Pro Quick project bootstrap
Starting a project with Dropwizard si very easy and bootstraping is quick and painless. All that's needed is a single dependency added in the pom.xml
file and it's ready to go.
Cons
Con Not so widely used
Could be problematic to convince the client use this framework in his/her project.
Con Not very beginner friendly
Although the documentation for Feathers is very good, it still needs some configuration in order to get Feathers up for developing something with it.
Con Does not allow a lot a freedom of choice
Dropwizard removes a lot of freedom that the developer may have with other frameworks because of the fact that it tries to do everything itself. It chooses the best Java libraries for the job required, without allowing the developer much choice.