well first for people not into those things let direct them to this excellent introduction by cloudflare
What is BaaS? | Backend-as-a-Service vs. Serverless
Backend-as-a-Service (BaaS) allows developers to focus on the frontend of their applications and leverage backend services without building or maintaining them. BaaS and serverless computing share some similarities, and many providers offer both, but the two models have several differences.
so BaaS, Faas, PaaS, etc.
personally I will resume it like that “hu ho we don’t know too well that server thingy so let delegate everything to a 3rd party service”
because off course maintaining scaling etc. backends require quite a bit of work
in Flox is phasing out - a Post Mortem, they explain quite well the choices they made and why
but Flox phasing out is not the first horror story in BaaS
acquired by Facebook in 2013 and shut down in January 2017
acquired by PayPal in 2014 and shut down in 2014
eg. PayPal closing down backend service StackMob mere months after buying it
Firebase got a better story
acquired by Google in 2014
and not shut down
and on mobile even replaced the Google Analytics SDK (see Google to Sunset Support for Google Analytics Services SDK, Transitions Mobile Analytics to Firebase)
“as is” I would say none
you might replace parts of it but not all of it and with various pros and cons
if your main concern is about tracking and analytics
personally I would say go with Google Analytics
and shameless plug advise to use as3-universal-analytics
because of that Google Analytics Services SDK
Why you may want to use as3-universal-analytics library instead of other libraries:
- focused on doing one and only one thing:
send analytics data using the measurement protocol to Google Analytics backend
- simpler, easier to compile (SWC vs ANE), smaller in size, less conflict, less maintenance, etc.
- It will work where the ANE can not:
- Online/Local SWF files
- Desktop Adobe AIR
- Standalone Flash Player executable
- Command-line/Server-side Redtamarin
- It does not need to be updated wether an Android/iOS versions change or if a SDK is updated/deprecated
- It will work wether a particular Google SDK is supported or not
to a certain extend it could also track errors
// an error is thrown here
catch( e:Error )
tracker.exception( e.message, false );
you might track logs with custom events but it is not really made for that, anyway it is mainly analytics and so the cons are that it will not manage authentication, object storage, etc.
but you would probably be fine with Firebase too, I don’t use that because I do need those kind of API to work also on the desktop and on the command-line, and Firebase is mobile only.
All in all the problem with BaaS is that you’re depending on a 3rd party service and if this one shut down you are without a solution sadly, and I would say the same with any other cloud solution like GCP, AWS and Azure (for ex: they have been rumours that Google could shut down GCP).
So if I was in your shoes, I would first take control of the server backend and I would proceed like that
- take a list of every single Flox API you are actually using
you are probably not using 100% of them
- make a list of priorities, if you use 10, select the 5 most important ones
- implement your own REST API on the backend and copy/clone the Flox API calls
- on the backend either delegate to another 3rd party or implement what you need
eg. maybe use Google Analytics for analytics, use XYZ for object storage, etc.
and yep I know it is a lot of work, but I would say it is the price you pay when using a BaaS to “earn time”
In any case, even if you were to decide to replace everything with another BaaS you would have to rewrite all those API calls