> Does that answer your question? Kinda. Let me try to map this onto a small summarized set.
On Jul 24, 2013, at 11:25 PM, Richard Newman <[email protected]> wrote: > Yes. :P > > I think rather than a list, we have a journey. > > It starts here: it's tempting to use Couch -- hey, it looks like it buys us a > lot for free. Replication, object storage, client libraries, looks like a fit > for a record-oriented data model. Records are a bit like documents, after all. > > OK, but we won't want to expose our Couch cluster to the world. For one > thing, we might need to switch backends for operational reasons. And we > almost certainly need to put some logic in a server -- validation, auth, > buffering, consistency, monitoring, attack mitigation, security auditing. So > we build a server in front of it. But maybe for now we can start with plain > Couch. Monitoring, attack mitigation, and security auditing don't seem unique to couchdb. Buffering and consistency perhaps fall under "Protocol Limitations" > Also, we can't use off-the-shelf replication (either client-server or > server-server), because we can't control local space usage, OK, so we build > our own Couch Protocol client, right? That'll let us control how we move data > around. Which sounds like "Client resource usage". > But we can't just use the Couch Protocol. It doesn't give us the guarantees > we want to achieve performance, consistency, and safe structural manipulation > -- ordering of records, collection deltas -- and we'd also need to extend it > for auth, for not-yet-fleshed-out app-specific semantics, for collections. "Protocol Limitations" and perhaps "Scalability" and maybe "Data Representation" (thinking that protocol limitations can pretty deeply affects representation design, not everyone agrees). > A few steps down this road and we've got Couch… only not a Couch server, > speaking not the Couch protocol, and not using Couch clients. > > So we come down to two or three things, all of which I think are sane: > > * Using Couch as server-side storage. I leave this up to Ryan's excellent > judgment. > * Taking some inspiration from the Couch protocol (even to the extent of > being able to build a client-side adapter to talk directly to Couch; > basically implementing the server layer/custom protocol directly in the > client). > * Maybe, for the set of totally independent datatypes (which is very small) > for which we're OK having a full local replicated copy and server-side > conflict management, using Couch as another data storage backend. If I were > writing Deb's task list app, I'd be really tempted to just say "screw it, > let's dump it into Couch and let the protocol sort it out", if that buys us > anything. > > I'm fairly confident that we can end up with a pretty slim server (which'll > make Ryan happy), and a blob exchange protocol that isn't light years away > from Couch's (which'll make Chris happy), on which we can build a consistent, > robust, and performant syncing architecture (which'll make me happy). Ok, I'm admitting we're going to have a pretty protracted conversation on this tomorrow, and just wanted to ensure concerns were represented. I *think* I've done a fair job. We shall see! :} lloyd > -R > > > > On 24 Jul 2013, at 10:08 PM, Lloyd Hilaiel <[email protected]> wrote: > >> I imagine tomorrow at the design review we'll want to spend some time >> talking about CouchDB. >> >> If you had to summarize all the unknowns, or areas of concern, would they >> fall into this list? >> >> # Structured data (bookmarks!) >> # Protocol Limitations >> # Client resource usage >> # Data Representation >> # Scalability >> >> ? >> >> lloyd >> _______________________________________________ >> Sync-dev mailing list >> [email protected] >> https://mail.mozilla.org/listinfo/sync-dev > _______________________________________________ Sync-dev mailing list [email protected] https://mail.mozilla.org/listinfo/sync-dev

