Hacker News new | comments | show | ask | jobs | submit login
Why did Facebook decide to shut down Parse? (medium.com)
190 points by sashthebash 600 days ago | hide | past | web | 87 comments | favorite

Parse never made sense to me.

I could see a service like Parse being useful, but it would need to be owned / operated by a nonprofit in order to gain any adoption. Otherwise, it's just another proprietary platform that will get shut off or changed once Facebook (or whoever) pivots to another business model to address that market. There's certainly demand, but I think most developers are wary about putting their company's tech stack at the mercy of a profit-driven company that may abandon them.

In the end though, I just don't think Parse offered enough over existing solutions like AWS and Azure. Both those ecosystems can easily scale from low-end mobile apps (like Parse was designed for) or huge enterprise apps.

It also didn't help that Facebook was unable to onboard a single major IoT vendor onto Parse - IMO this was probably the reason they ended up killing it. If there was zero interest from existing players in the industry, they may have figured there's not much of a market there.

It didn't make sense to me until I had a.) started a company and b.) saw the historical tech stacks of a number of companies (eg. Google, Facebook, EBay) that had hit it big.

I started my career with the belief that your company has one tech stack, the chief architect chooses it when the company is founded, and that you never ever rewrite it because you're in for a world of pain if you do.

I learned that basically no company that experiences hyper-growth ever does this. Instead, the founder chooses a tech stack based on whatever he knows best and will let him write a v1 quickest - whether it be Java (Google), Perl (EBay), PHP (Facebook), or Common Lisp (Reddit). The first few employees collectively say that the founder is an idiot, choose a different tech stack (usually whatever's hot right now - probably Go or Node.js at this time, Python or Rails in 2005), and rewrite the whole product. They hire an experienced VP who says that the first few employees are idiots, chooses a different tech stack (often the tried and true enterprise favorites of C++ or Java), and dictates that everyone rewrite the product. Eventually, managers with more recent experience in that language get hired, who collectively say that that VP was an idiot, and the real way to do C++/Java is with Guice, Boost, C++11, etc, and rewrite the product that way. Development grinds to a halt, and the company buys a bunch of hot startups who wrote in whatever language they were familiar with, who are technical idiots but managed to build a product that everyone likes.

In this context, Parse and other BaaS providers makes a lot of sense. You can get your v1 product out there really quick, get customer feedback, improve it, take VC, and hire lots of programmers to call you an idiot and rewrite your product into something saner. Then you get bought, everybody at the new company thinks you're an idiot, but you have at least cashed out. Or you don't get bought and hire a VP who'll force you to rewrite your product, but at this stage you have so much of a market lead that it doesn't matter, and the BaaS got you to the point where you have the resources to free yourself of it.

(I wonder if I'll end up tripping some HN flamewar auto-detector with the number of times I've said "idiot" in this post...)

While I agree completely with your comment, I wished you'd written "made architectural choices based on facts that are no longer true" instead of "is an idiot." Nobody sets out to make bad choices on purpose, and only the extremely lucky make architectural choices that survive massive growth.

(I believe Etsy had a policy of rewrites needing to support current needs multiplied by five. This acknowledges that there's a reasonable trade off between current needs and future-proofing.)

I agree, but the actual words used when this discussion comes up very often are much closer to "What idiot designed this shit?" rather than "My coworkers made architectural choices based on facts that are no longer true". (At Google the latter was perhaps more common, but I've heard the former in startups a lot more frequently, and certainly on Internet message boards.) I'm perspective-taking on the part of all sides; I hope that it's apparent from each side being called an idiot in turn and the company succeeding in the end that I don't actually believe any of the participants are idiots.

Once the next round of developers join, the scrappy MVP has usually been pushed far enough to be messy and maintainability becomes an issue. Seeing that might trigger the "idiot" reaction, The old guard appreciate how far it's come.

I believe they used the right word. Not because those that did make the decisions were, in fact, idiots, far from it. It's because many times, that's the attitude of people who decide that things have to change.

"based on facts that are no longer true" I don't think each successive wave is necessarily thinking about facts that were true but are no longer true. I think being opinionated about the tech stack you have to work with is often not all that rational. Trying to substitute concrete rational behaviour on the desires of new waves of employees might seem nice, or at least politically correct — but there is often no specific technical translation for "what idiot wrote this"; it's a cultural thing.

Wrong: "made architectural choices based on facts that are no longer true"

Less wrong: "made architectural choices based on personal preferance"

Don't be such a politically correct idiot!

And, personally, I think that this stack rewrite path makes a _lot_ of sense and probably should be planned from the beginning.

The business requirements to the architecture — not functionality! — change over time. At first, you have to be lean as hell and try a lot of different stuff. Then, you need to scale, and performance becomes an issue. Some time afterwards, you want to add more features to increase monetization and retention, and here you start needing good, abstracted out architecture for all this stuff not to interfere with each other. And finally, you find the sweet spot, and start to really care about bug-free experience, maintainability and reliability.

And all these different business priorities are best suited by different languages, different design approaches, different architectures and people with different personality traits.

Or you can be like WhatsApp, write once in Erlang, and scale to a billion users just with OS-level tweaks.

WhatsApp is one example, and if you're trying to imagine your own path, you should be thinking in statistics and probabilities. Imagine if the idea doesn't work out and you need to pivot. I'm not familiar with Erlang at all, but judging by the fact that (1) it was developed by a big telecom company and (2) it's priorities are stability and performance, I don't feel that it drastically changing business logic of an Erlang application is an easy task.

Being an Erlang developer myself: if you don't actually need the stability of a telecom (e.g. restartless upgrades that hold open circuit-based connections), pivoting around the logic of an Erlang app is about as easy as doing so in Ruby/Python/etc.

Though, that being said, I'd actually recommend Elixir, which gives you the same Erlang-ecosystem benefits, but with the key advantage of being 5x easier to convince the average Ruby/Python developer to use.

Source? I am skeptical WhatsApp is a single monolithic service at this point.

I was nodding so much to this comment. Been there, done that. Been on both sides.

I nodded so vigorously that I need a chiropractor. This perfectly describes my experience in the web industry and the client-server industry before that.

Only the particular languages and frameworks change, but the patterns remain the same.

By patterns you mean GoF??!

There are management and architecture patterns as well as design patterns.

i think what the op meant was that it didn't make sense because it's owned by facebook. Heroku being owned by Salesforce makes much more sense because that's their business models are aligned. I remember the first time I was about to try out Parse, fortunately that's around when Parse got acquired by Facebook and I decided not to take a risk. It especially didn't make sense for me because I was going to build a social app. It doesn't make sense to build a social app on a platform owned by a social app company.

I'm saying that this usually doesn't matter to the people who would be using Parse anyway, because they operate under a timeline much shorter than this. In a year, their startup will either be dead or they'll have the funding to migrate off Parse. On a timescale equal to your lifetime, it's almost a guarantee that FB will pull the plug on Parse. But on a timescale equal to the time period when you need Parse, it's actually a pretty good bet.

If you had tried out Parse right when they got acquired by FB, chances are you would either have a fundable business that can hire engineers to move to your own infrastructure, or you would know that your business idea doesn't work. Either way, you no longer need Parse.

Similarly, the shutdown mostly affects "zombie" businesses - the ones that aren't dead, but aren't growing either - because in a year, you should be able to figure out whether or not your business concept has legs.

Took me rushing through all those years of insane coding in the last company I worked for. By the time I had quit, a fully functional game engine had undergone 3 rewrites with 2 more underway and with one of them not seeing the day of light. All for the same reasons you elucidated and some more.

While it was not 'idiots' that was the reason, the later developers always had just enough more data on the assumptions to be made for the current revision. But then again, not enough to foresee the need for a fresh rewrite when things changed again in the future. Sometimes, the rewrite was essential, sometimes it was just on a subjective whim to build a silver bullet once and for all!

your second paragraph would be incredibly unfortunate. most of the sane large companies i've worked at or know people who work at have settled on 2-4 languages -one of which is usually the legacy starting language-which they provide tier-1 support through dedicated teams providing "the stack" in various forms. everything else is community owned and caveat emptor. its why startups should be able to use whatever language they use a selling point; a huge company churning through languages du jour sounds like an awful experience.

The "2-4 official languages" dictum is usually put in place after the company churns through those 2-4 languages in the first 2-4 years of its existence. Basically everybody realizes how costly it is and says "no more". At least that's how it was at Google, which is perhaps the most famous example of the "We have 4 official languages, and you're not introducing a new one" policy.

I've worked in startups that tried to implement the "1-2 languages only" (usually Java and Jython/JRuby/Groovy) policy as a startup, and they didn't go anywhere. That team of prima donnas who is willing to mortgage the startup's future in order to ship an awesome product seems to be a necessary feature of startup success, and only successful startups get to hire the team of professionals who will button down everything, choose "official" languages, and build tier-1 infrastructure. So yes, it's incredibly unfortunate, but this is the industry we live in. Pick which role you wish to occupy accordingly.

> Google, which is perhaps the most famous example of the "We have 4 official languages, and you're not introducing a new one" policy

I believe those 4 languages were Java, C++, Javascript, and Python. Nowadays they also use Go, Dart, Groovy (in Android Studio), and I guess a lot more. (When I say Groovy, I mean the tiny non-Turing Complete subset of the syntax used as a DSL in typical Gradle build scripts.)

It's technically C++, Java, Python, and Go. There's always been an exception for client-side code (which encompasses Javascript on the web and Objective-C for iOS apps), and for DSLs (which includes Sawzall, Protobufs, Bazel, Gradle, and several that I don't believe are public. Haskell was also used as a DSL by one team, though their product unfortunately got canceled).

This is frankly the best tech industry tech stack cycle explanation I've ever seen lol.

I've thought this myself but never put the words together so clearly

Did facebook move away from PHP ? Did google radically switch stacks ?

Facebook's backend is, to my knowledge, largely C++, connected via Thrift. The frontend started out as PHP, eventually got compiled to C++ via HipHop, replaced HipHop with HHVM, and then added support for Hack. My understanding is that they're gradually adding more React to it as well. FB also includes a number of specialized services, eg. Chat & Whatsapp are written in Erlang.

Google as written by Larry Page was done in Java. It was rewritten in Python by Scott Hassan before the company was incorporated. As of 1999, the webserver and crawler were still in Python. It was almost completely rewritten (multiple times) in C++ shortly thereafter for efficiency. Most of the Google Apps (GMail, Docs, Plus, etc.) are written in Java. The webserver for Search shifted over to a combination of Java and two different DSLs in 2010; I worked on the implementation of this. My comment is lightly paraphrased from a remark Larry Page gave when asked why Google doesn't adopt more modern programming frameworks like Rails or Node (it was in 2011, when both of these were still state-of-the-art).

Facebook rewrote PHP and switched various components to other systems entirely. It's not like they're still running their original LAMP stack.

The circle of life-cycles. Turn it into a diagram and help founders, early employees, VPs and managers to navigate these phase transitions.

I disagree with most of your post, but I think your last paragraph nails it. There was lost of demand and adoption of Parse, but only by thousands of the smallest players who just wouldn't offer FB any real value. I believe FB bought Parse just in case it worked out in one of the possible spaces FB was going to play. But it didn't. Failing at IoT, as you say, was the last straw.

I think most developers are wary about putting their company's tech stack at the mercy of a profit-driven company that may abandon them.

Heroku? Salesforce bought them, still going, still very heavily used.

IMO: Heroku is a bad example of vendor lock in. To use Heroku, no code changes were required which would prevent it from running else where. A counter-argument to my counter-argument, Heroku limitations (i.e. 30-second HTTP request timeouts) required code changes for any and all web apps to work on Heroku. Anyhow, code that runs on Heroku can run anywhere.

Parse, on the other hand, was both the code and the infrastructure.

EDIT: p.s. love your newsletters!

> Heroku limitations (i.e. 30-second HTTP request timeouts)

I see this as less of a limitation and more as Heroku forcing you to write your app in a scalable manner. Likewise with Heroku servers/dynos not coming with permanent storage and not letting you SSH into them.

Heavily? Heroku was making about 2M in annual revenues when it was bought by Salesforce, and I guess it didn't grow much since then.

Also, Heroku was essentially a great funnel for AWS. Start on Heroku, as soon as your footprint grows, move to AWS to save 2/3 of the cost.

Source: I worked at AWS and saw this happen over and over again.

For most applications, you're just hosting on Heroku. You can move your application. That's not really a dependency, unlike Parse, where their SDK is deep in your application code. (Oversimplifying what you'd need to do to move, though you can keep the simple deployment story with something like Ckoud 66) It's not a perfect analogy, but Heroku is like AWS EC2, whereas Parse is like AWS Lambda.

Parse's valuation proposition makes a ton of sense. It however, made very little sense under the Facebook banner. Just like Crashlytics/Fabric makes little sense under Twitter's banner.

As a developer, I want to build my software-based business on top of a provider that is focused on making money from software developers. Facebook and Twitter make money from advertisers. Amazon (AWS specifically), Google and Microsoft explicitly have revenue incentives to make money from software businesses.

Parse made a lot of sense to me. Building a simple backend isn't much work, but operating it sucks. You get to deal with script kiddies, hackers, hard drives dying, services crapping themselves at inconvenient times of day, backups, testing backups, security updates (and what is probably more work, monitoring security updates) for the OS and web server and proxy and db and on and on. Maybe there isn't a pricing model that makes this work, but I think there's a real desire.

Parse makes sense in general, but not for Facebook. Facebook is a walled garden that makes its money selling advertising. They don't offer any other developer oriented offerings and don't seem inclined to opening their data centers up for a public cloud.

So Google App Engine doesn't fit into your thinking at all here. I know of large IoT efforts going on there though. And gaming. Both of which would make sense for Parse if Facebook were serious about it.

App Engine is far more mature than Parse - it's been around for nearly a decade, the API is stable, and Google's not going anywhere any time soon. App Engine adoption was also very slow to pick up, but it was a more enterprise-targeted computing solution than Parse.

IMO Facebook just decided to cut their losses. Parse was very likely to end up as a low-margin enterprise business with little to no impact on Facebook from a data standpoint. Facebook doesn't really have an enterprise sales division like Google does; and standing up a new sales channel like that is very difficult if you're not sure the margin will be there.

Parse made no sense as part of Facebook, but would have made sense if part of AWS or even Microsoft.

Wonder if founders knew this but were just happy to get acquired. Can't say I would blame them.

Hopefully for them part of the (purportedly $85M) deal was in stock. Back when they got acquired FB was trading for ~$25 a share (compared to $112 toady). That would help ease the pain of Zuckerberg throwing away your life's work.

    > I could see a service like Parse being useful, 
    > but it would need to be owned / operated by a 
    > nonprofit in order to gain any adoption. 
    > Otherwise, it's just another proprietary 
    > platform that will get shut off or changed once  
    > Facebook (or whoever) pivots to another 
    > business model to address that market. 
It's not that companies that lock their business customers in wouldn't be successful. In my experience the vendor lock-in argument is always low on the list of arguments, sadly.

    > There's certainly demand, but I think most 
    > developers are wary about putting their 
    > company's tech stack at the mercy of a profit-
    > driven company that may abandon them.
Developers, sure they know better because service migration is their work and it's boring and unrewarding. Management is a different story.

Which is why, when a project presented itself that had this need, we ended up using Apache UserGrid.

Yeah, it sucks Parse shut down. But that's not an argument to avoid SaaS. My startup is built on over 20+ different third-party tools. It will really, really suck if any of them shut down... but I'd rather deal with that possibility in the future when we have more money and time, than struggle to build everything out ourselves now.

Like I said, it sucks Parse is shutting down. But in ~2 hours, you can get the open source Parse clone they released going and be back to new. Seems better to deal with that now than to have slowed down initial development by building everything in-house.

> But that's not an argument to avoid SaaS.

Actually it is, at least the kind of SaaS / PaaS that locks you into proprietary APIs / tools. Speaking of which, Parse never made sense to me. I mean, you can quickly assemble the needed functionality from open-source libraries, deployed on AWS or Heroku, without the never ending issues, limitations or the lock-in of something like Parse.

You do need the know-how and that might take time if you don't have it, but on the other hand that technical know-how becomes your secret sauce.

Somebody wise once told me that the best product managers and project cofounders are highly-technical people, preferably former engineers. The reason is because imagination is limited by what you know is possible, which is the reason most non-technical folks aren't capable of proposing good solutions to their problems.

> in ~2 hours, you can get the open source Parse clone they released going and be back to new

I keep hearing this, and I have a hard time believing it. Are there any examples of a significant app/developer doing this? Sure a working Parse Server is easy to get up and running, but the reason someone wouold choose Parse was to avoid operations, and that's not a service you build in your company in 2 hrs. (as an aside, it looks to me like the Parse Server is a very limited subset of the real Parse)

If you have a small app and don't need to be careful about scaling issues, then 2 hours is pretty accurate I think. It's trickier when you have a large app, because with Parse Server you do need to handle your own databases and production environment. So I think some of the larger apps are either going to need to hire some devops folks, or make an arrangement with higher-service providers like ObjectRocket.

It has been less than a week, though, so we will see.

Parse Server uses Mongo, there are plenty of operations-free Mongo hosting options, like Compose. Also, Parse server code itself could be given to company such as Heroku or AWS beanstalk to host it for you.

There's quite a few pieces missing from the open source Parse server. https://parse.com/docs/server/guide#migrating Analytics, Push (a big one), Config, Jobs. I've been building a mobile app platform on Parse for a while, so I'll have to re-build all the missing pieces for all my existing customers and to keep the new customers coming in. Its something I'd been planning/researching for a while for the next version anyway, the number of times I've said fcuk Parse! Now I have to hurry up and build the next Parse anyway at http://appstack.systems

If someone wrapped it as a microservice with containers and a deployment script for AWS then yes. Otherwise the configuration alone would take few hours. This then begs the question; was/is AWS or Google a better backend to rely on long term.

Sometimes I really feel like I'm falling behind the times because I don't use a lot of third party services or platforms for my company's apps. I feel like I stick with simple tools at the expense of not getting any "good stuff" for free.

When something like this shutdown occurs though it makes me glad that I can just spin up a plain old server or two and put together whatever services that I need. I can't tell if I'm a dinosaur or a maverick!

Click-bait speculation.

Word in the industry was that after two failed attempts to move from AWS to Facebooks metal failed spectacularly and massive attrition after vesting -- no one was left to make it work and Facebook lost the will to keep going.

The more important lesson was that a failure to port a stack from AWS to FB servers caused Facebook to take a $1B write-down. Startups should reconsider their metal, as future acquirers will likely heed this lesson strongly.

> after two failed attempts to move from AWS to Facebooks metal failed spectacularly

Seems more like a problem with FB onboarding them and their tech. With some of the smartest people in the world they can't solve problems like this?

> Startups should reconsider their metal, as future acquirers will likely heed this lesson strongly.

Makes no sense. Startups should focus on product and users. Scaling on AWS is somewhat of a no brainer giving more time for what's important: product and users. This seems more like an outlier situation in which FB really didnt care.

"Word in the industry" from which industry? From what source? The tone of your messages is pretty scary.

Instagram still run partly on AWS, not sure about the rest like the actual backends.

> Startups should reconsider their metal, as future acquirers will likely heed this lesson strongly.

That's the last thing a startup should worry about. Growth and branding are far more important. Most acquisitions ended up with most of the original team departing from the new company a year or two after the acquisitions, or move on to another production. Your product will be dismantled and re-engineered in house.

uhm, i don't know about that conclusion. what you're describing is a basic failed migration. it happens all the time.

all the smart people left, and migrations are hard. very hard. you have to know how the internet actually works, and most people don't have the foggiest fuckin' clue about how anything really works, especially in today's advanced abstraction-driven world.

they should have written it into the vesting contract, probably will in the future.

Discouraging startups from using AWS is so strange, I had to look at your bio. A Googler eh. Perhaps you have some ulterior motive to encourage people to avoid the AWS stack, which is clearly becoming the infrastructure of choice for this generation of startups?

Attacking his integrity seems kind of uncalled for.

Well in all humility, I know a lot less about this than you.

For what it's worth (and because someone said they were "hoping for an insider leak"), here's what a genuine insider had to say about this article:

Just awful.

followed by:

I would write something but it would be so simplistic that nobody would believe it.

Sorry it's anonymous, but it's the best I could squeeze out of them :)

They can't just leave us hanging like that.

This "article" is just an ad, once you reach the last paragraph.

Pretty much. It's fitting in with the trend of execs writing about buzzwords to make the topics relevant to their startup offering.

Interesting insights until you realize that the author has a not so hidden agenda for posting such an article.

I don't think Parse's lead in this space ever evaporated. They went out as the best-in-class MBaaS.

I agree with this! ;-)

>Can you trust your platform of choice, or will they close shop on you tomorrow?

I'm thinking about moving to IBM BlueMix with parts of my business and asking myself the same question. What do you guys think? Will BlueMix still be there in a couple of years (3,4)? I know nobody using it, but IBM is promoting it quite aggressively, and it makes sense for me to have an alternative for both self-made AWS clusters (IaaS) AND BaaS like Parse.

I've been using BlueMix off and on since it was still Beta. I have noticed that a lot of things, particularly in the BaaS space, have changed significantly. While I'm sure BlueMix will be around, I doubt you'll make it 3 or 4 years without having to modify your code to accommodate changes to the platform.

It will be around, for sure. But it will also be so expensive it might as well not be.

There's also http://www.28.io (totally ungooglable name, btw. Also know as "28msec").


Not really comparable to Parse, even though they call it "Virtual Databases". Sure, you can query everything, but what about updates?

EDIT: Looks like they have updates, but I couldn't find whether they support similar uniform interface to updates as they have for queries (ideally XQuery Update Facility).


I was hoping for an insider leak...

We replaced the misleading and linkbait title with a representative sentence from the article.

Submitters: the HN guidelines ask you not to use the original title of a post when it is misleading or linkbait.


> Large mobile app developers such as mobile gaming companies mostly shunned its service, building in house custom solutions instead. Small to medium sized developers embraced its service, but had a much smaller propensity to spend.

As a developer, I want the platform I choose to rely on to be reliable and unlikely to shut down. I also don't want to spend a lot of money on it. Hmm. Hmmmmmm.

I still see a big market for a more powerful Parse. I think the whole "infrastructure as a service" is now commodity and wouldn't be a good competitive advantage, but the software orchestrating all the sys admin stuff on top of any IoT would be of tremendous value. The perfect solution would connect all the great open-source building blocks into one "Good Enough Way". I would totally pay for that, but I don't see how that service would stop copycats. In a way, this is what Meteor is trying to get to. Embrace open-source but deal and charge for the hard parts that nobody else is solving.

Ideally, there would be a generalized way to build scalable applications. Similarly to how mostly everyone got behind React, it would be great to have mostly everyone behind such a project. I'm sure it will happen, but I'm not sure when it will. Right now there are hundreds of new libraries in the JS ecosystem, but there are some clear converging trends. I think new languages and libraries will always exist and be welcome, but it'd be great to have one standard way based on years of experience. Similar to how other industries stabilized (i.e. building bridge). I feel we'll be able to move so much faster when we get to that point. Now, every programmer is reinventing the wheel and keep doing the same mistakes that other programmers elsewhere are doing.

Outsourcing functionality or work makes a lot of sense for things that aren't core to your business. If you're building a web or mobile app, backend services should be core to your business.

It's a very different thing to write a web application or web services that can run on many hosting platforms than to give responsibility for your entire backend to a service provider.

How is Slack not also a house of cards like Parse?

Slack is (or should not be) mission critical. If Slack shuts down, you can still communicate with your team through email, SMS, or any other alternative. Your product will remain in operation even if Slack dies.

Slack is not mission critical, you mean.

Oh noes, slack is down we can't deploy :(

Slack changes a decent amount of money for access to their platform.

Slack is gaining a lot of momentum in the enterprise space as a collaboration platform. Considering that they are basically a supercharged IRC, I'd say that's pretty nifty. I don't see them shutting down any time soon.

Wow, talk about another ad disguised as an article. Damn South Park was right!

Interesting thought. In fact when I looked at the market of mBaaS, it is interesting that most major competitors after Parse target the Entreprise market, that echo with your 2nd checkbox.

They bought parse at a time when Facebook was struggling to do mobile right. Parse had the talent. That was my initial thought when the acquisition went down.

Does anyone know if there is a list of the 60,000 apps that relied on Parse? I'm just curious.

Google this: site:parseapp.com

Thanks for the idea, might have to contact some of them about my Parse replacement platform!

Applications are open for YC Winter 2018

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact