SoftInstigate / restheart

Rapid API Development with MongoDB
https://restheart.org
GNU Affero General Public License v3.0
807 stars 171 forks source link

Feasibility of deploying as Servlet in a standard WAR file? #49

Closed timbaileyjones closed 9 years ago

timbaileyjones commented 9 years ago

RESTHeart recently got my new AngularJS webapp jump-started by providing me a very solid REST foundation to build upon. Because of this, I'm a big fan of RESTheart, and would like to use it, but unfortunately at work, we are required to package everything in standard WAR files. So, I wrote a very basic MongoCrudServlet [1] to fulfill this requirement, but it is nowhere near as complete and well-tested as RESTHeart is.

What would it take to make RESTHeart into a Servlet? [1] https://github.com/timbaileyjones/nomopojo/

mkjsix commented 9 years ago

Hi Tim, First of all, thank you four your kind words, we are truly working to make RESTHeart as the most complete and scalable RESTful server on top of MongoDB and any encouragement is highly appreciated :)

I understand your constraints, but unfortunately I can't see any easy path for packaging RESTHeart into a servlet, it would be quite a big effort: its architecture is literally upside down, meaning that it is built around the Undertow embedded core. On this regard, Undertow is not just an embedded HTTP server, but we've fully embraced its internal pipelined architecture. In our vision RESTHeart is really a standalone server which could work side by side with other servers, to provide a component for a real micro-services architecture. But actually it's not a component which has been created with the idea of working within a traditional Java EE environment, packaged as a standard WAR file.

Instead, our efforts are going into the direction of packaging and deploying it via Docker containers, which we see much more close to our "cloud vision". See https://hub.docker.com/r/softinstigate/restheart/

timbaileyjones commented 9 years ago

Ah, Docker... another wonderous thing that I hearing about, but haven't gotten around to playing with. I guess this means I'll move Docker much further up on my tech-to-learn list. Thanks for your quick response!