Hacker News new | ask | show | jobs
by joshuaellinger 4724 days ago
Can anyone who uses the Dropbox API tell me if these features are significant?

From my .Net developer's point of view, I am not seeing why these aren't just weak versions of the Azure storage capabilities or Amazon's S3. It's nice to be able to target DropBox as a storage location but that's a pretty rare use-case for me. Especially since their security store is incomplete.

3 comments

I think fundamentally Dropbox's move away from the filesystem by exposing an API like this and through application acquisitions (music and mail) is about trying to become the Apple of personal data.

Dropbox has done a phenomenal job of taking a complex challenge (file sync) and making an incredibly simple user experience. Extending that strategy into other common tasks with new and purchased apps could be very successful. The big element missing is BaaS (back-end as a service) for data and events that aren't files. Given the poor track record of services like iCloud, you can imagine a lot of developers adopting the Dropbox API and in a few years most iOS devices might be running a combination of official Dropbox apps (replacements for itunes, mail, and maybe calendar) and many other essentially stateless apps that use the Dropbox API for sync and storage.

In the short term this could be very convenient for users and developers, but in the long run it creates another monolithic, centralized platform. This kind of functionality needs to be delivered as a protocol so users can choose service providers who compete on price, features, and privacy instead of being citizens of a particular platform (Facebook, Apple, Google, MSFT, or increasingly Dropbox).

> This kind of functionality needs to be delivered as a protocol so users can choose service providers who compete on price, features, and privacy instead of being citizens of a particular platform (Facebook, Apple, Google, MSFT, or increasingly Dropbox).

How would this benefit dropbox?

Not sure which you mean:

- Their proprietary BaaS benefits them by consolidating all user data on their service and creates a greater incentive for users to upgrade to paying (or higher priced) plans.

- Alternatively, structuring this as a portocol (as we've tried to do with Tent https://tent.io) benefits the entire ecosystem. It's a little like asking how the web would benefit AOL. Protocols can bust monopolies but increase the overall value of an ecosystem. You might go from controlling 50% of n to controlling 10% of 20*n. Open ecosystems can encourage innovation in ways that centralized services can't, often to the benefit of the centralized players.

It's a step toward evolution: Dropbox becoming a platform and not just a cloudy app. I wonder, though, about the amount of storage available at the free level -- is it enough to support a true platform?
isn't dropbox built on top of amazon?

Isn't it a platform on a platform at that point?

Yes, but that doesn't mean it can't work and add value. Heroku is built on EC2, for example.
Well, from a quick look at the Datastore API, they provide conflict resolution and offline support, which are pretty big if you're working on a mobile application.
How do they do actual conflict resolution? The example they give is address changed on one device and e-mail on another. That isn't a conflict.
It is if you're storing JSON blobs for contacts and simply send it up to a cloud storage service. It would be last-to-write wins, in this case. Supposedly, Dropbox would handle this sort of scenario.

Of course, this is assuming you weren't using a database (even a NoSQL DB) and simply updating the changed fields, which is probably how you'd realistically handle this situation.

EDIT:

Taking a closer look, it seems like the Datastore API is more of a way to synchronize multiple databases/stores (in essence). One stored locally on a phone (that can be changed, in their example, in airplane mode), one in the cloud, and one on the desktop, or anywhere else your app runs with the Datastore integration. While there are relatively simple ways to locally queue changes made while offline, and then sync them up to a master database in the cloud when the network comes back, Dropbox's Datastore seems to do this for you without you having to worry about it.

For details, see:

https://www.dropbox.com/developers/datastore/tutorial/ios#co...

They have a few naive conflict resolution rules that you can choose from. The granularity is per field. They do have an option that attempts to be smart about array-valued fields.