What backend solution would you recommend?


#1

Hello guys !

So after debating a long time with my coworkers, we chose to go with Ionic on the client side. We have a very big hybrid ()phonegap) application coming, something huge, with a lot of data to store and use in live (websocket…).

We’re now debating about the backend solution. Our two main options are Node.js and Laravel framework, but we are open for suggestions. Node looks more reactive, but this tends to be a draw when using Facebook’s HipHop (HHVM), which is 100% compatible with Laravel. Websockets seems more easy to use in Node, as well as MongoDB (which we chose for DB storage). But I have read somewhere that Node could be a very bad choice for very big applications, and have to take in mind we feel already comfortable with PHP, where Node would be a start-to-learn.

Thanks ahead for any advice !


Data persistence/iCloud
#2

I’m personally using ASP.NET Web API for my services which talks to MongoLab.

Have you taken a look at Firebase? Looks quite cool. User authentication etc. Would be interesting to see how far you could go without writing any server-side code at all and simply relying on their APIs.


#3

Hey, and thanks for the answer !
I’m not interested to work in .NET, did it once, never again ^^ I understand why people would use it, but I personally don’t like it.
I saw the Firebase solution, but that’s the problem : it would be interesting to know how far you can go, but I can’t take the chance to lose weeks of work if it finally don’t fit. And also, I don’t want my application du depends entirely on a third party service !


#4

For what it’s worth, we are big Firebase fans over here!


#5

I would use Mongo with Node - Express. May be express would be overkill and use some more lightweight framework like restify etc


#6

Have you looked at Parse? It’s a really cool platform for data, push notifications and social sign in.


#7

Parse has a very simple API and is really awesome. Also, it has API methods for Facebook integration and stuff. Really easy to import and export data and is very awesome. I would recommend Parse.


#8

@all, you recommend me, if I understand, to give it a try, as it has no really annoying limitations like I fear ? Parse vs Firebase… I have just read that for real time apps Firebase does better job.


#9

The main thing that you need to consider is how much effort do you wish to put into making the backend solution that communicates with your app. Parse and Firebase both fall into the category of BaaS (or rather mBaaS) providers. If you need complex web services and/or stored procedures at the database server, then probably you should stay away from BaaS providers. If you need simple GET/POST RESTful services, then using a BaaS will reduce your dev time a lot.
Besides, you need to check if they provide the APIs for pushing the data. And probably test the response times for them in case the data to be sent is really very heavy.


#10

Simple question here:

Is using a Firebase like service means that all the app logic and code need to be open for everyone, as all the code is on the client side ?


#11

@KazekageGaara Thanks for this interesting point. Lets say I will need to do very heavy searches in the DB, filtering data with users choices. I have read a lot about ElasticSearch, for example, that provides amazing tools to do this. How would this fit in a Firebase based service ? I guess that Firebase would not be very usefull if I need my own server to perform research over its data…


#12

@JerryBels I’ve not had much of an exposure to Firebase, but since it is a mBaaS, I believe it will not provide a lot of data intensive features out of the box. Though generally such platforms do offer custom queries/methods which can be utilized. It depends what kind of analysis/research you want to do over your data. I would suggest that you should explore Firebase a little (with your requirements in mind) and then make your own informed decision.


#13

@elit No. Only client side logic will be open like it will be for every other app.


#14

Thank you for your help, I guess that what I’m going to do.

Now to come back to my first question, and assuming the BaaS solution won’t fit in my needs, what do you guys would recommend : Laravel or Node ? This, keeping in mind it would be a heavy algorithmic app with real time queries and we feel more comfortable with PHP…

Thanks again, you guys are awesome, so is that community !


#15

@JerryBels I would recommend Node. Besides, I’ve got no experience with Laravel. Connecting to MongoDB and pushing data using Web Sockets is pretty easy with Node.js AFAIK.
You could wait for someone else’s opinion as well, and then draw a conclusion.


#16

Thanks, I will wait for other’s opinions also. About Node, what do you think of the computation-heavy apps performance weakness ( http://www.srirangan.net/2012-05-node-js-critics-which-part-of-event-driven-non-blocking-io-model-you-dont-understand ) ?


#17

@JerryBels I really like Laravel and use it a lot. However for the best websockets support i’d recommend using Node.


#18

Thanks for this advice also. We decided to try two things : one of us will try Laravel as main backend with Node just for websockets, and at the same time I will go and look deeper in Firebase. Thank you so much to all of you !


#19

Please keep this conversation going. I very interested in this topic. Thanks.


#20

Well I finally decided to give Firebase a try, as its possibilities seems very large and promising. I will provide feedback eventually, but don’t wait for it, because it will come only in several months (I have very few time for this project…)