> On 24. May 2020, at 17:32, Miles Fidelman <[email protected]> wrote:
> 
> Thanks Jan, and a follow-up, below:
> 
> On 5/24/20 4:51 AM, Jan Lehnardt wrote:
>> 
>>> On 23. May 2020, at 18:57, Miles Fidelman <[email protected]> 
>>> wrote:
>>> 
>>> On 5/23/20 12:29 PM, Jan Lehnardt wrote:
>>> 
>>>>> On 23. May 2020, at 16:28, Miles Fidelman <[email protected]> 
>>>>> wrote:
>>>>> 
>>>>> 
>>>>> On 5/22/20 11:13 AM, Jan Lehnardt wrote:
>>>>> 
>>>>>>> On 22. May 2020, at 15:06, Miles Fidelman <[email protected]> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>> Hi Jan,
>>>>>>> 
>>>>>>> On 5/22/20 6:17 AM, Jan Lehnardt wrote:
>>>>>>>> Hi Miles,
>>>>>>>> 
>>>>>>>> I wanted to reply for a while, but struggled to find a good angle. I 
>>>>>>>> think I finally figured out what I missed. I’m not sure I understand 
>>>>>>>> your deployment scenario.
>>>>>>>> 
>>>>>>>> When I think conference app, I think folks having that on their mobile 
>>>>>>>> phones, or tablets. Given that, you’d be using PouchDB (for web apps) 
>>>>>>>> or one of Cloudant mobile sync libraries (if it is a native app). 
>>>>>>>> Either way, to get the data to the devices, it’d have to come from 
>>>>>>>> somewhere, but then you say there is no central server. Where does the 
>>>>>>>> data come from?
>>>>>>> I was using that as an example - but I'm really thinking more the case 
>>>>>>> of "smart documents." Think of a plan (business, mission) or briefing 
>>>>>>> package - and the whole notion of "living documents.
>>>>>> not sure what these are and how they compare to CouchDB documents.
>>>>> "Living Document" as in writerspeak - a binder full of documentation that 
>>>>> is continually being kept up to date, the latest version of a proposal, a 
>>>>> book draft, a theatrical script that's being marked up with commentary 
>>>>> during rehearsal, etc.
>>>>> 
>>>>> Or think of marrying a wiki to a DCVS.
>>>>> 
>>>>>>>> It sounds like you imagine the devices talking to each other in a 
>>>>>>>> replication mesh kind of way. While technically possible from a 
>>>>>>>> CouchDB replication protocol point of view, this approach isn’t very 
>>>>>>>> practical. For one, you won’t be able to guarantee that all devices 
>>>>>>>> can talk to each other, especially when you don’t control the wifi.
>>>>>>>> 
>>>>>>>> What’s more likely is that you’d have central CouchDB server that is 
>>>>>>>> connected to the wifi network, either on site, or in a datacenter 
>>>>>>>> somewhere that all devices connect to.
>>>>>>>> 
>>>>>>>> Having that many devices talk to a central database to get all the 
>>>>>>>> relatively static data of the conference (schedule, info, etc), 
>>>>>>>> doesn’t sound like much of a problem. Group interaction is a little 
>>>>>>>> more interesting. You could model this a 1-db-per-group, and it would 
>>>>>>>> work okay, but there are some devil-in-the-details-details to work out 
>>>>>>>> with access control and joining and leaving a group, etc.
>>>>>>>> 
>>>>>>>> So overall:
>>>>>>>> 
>>>>>>>> - what architecture do you envision?
>>>>>>>> - I think this can be made to work.
>>>>>>>> - CouchDB definitely can handle 5000 intermittent clients. Depending 
>>>>>>>> on your use-case, you may need more or less computing resources for 
>>>>>>>> this, but there aren’t any fundamental blockers in CouchDB’s design 
>>>>>>>> that would prevent this from being a success.
>>>>>>> I keep coming back to the model of replicated copies, stored in 
>>>>>>> something like a distributed version control system, linked by a 
>>>>>>> publish-subscribe network. (Not that much different than the way 
>>>>>>> large-scale modeling & sims are done - local "world models" linked by a 
>>>>>>> protocol like DIS or HLA.)
>>>>>>> 
>>>>>>> I've been wondering if Couch/Pouch might make a good platform - coupled 
>>>>>>> with something like NNTP for epidemic style distribution of changes.
>>>>>> If you squint a little, CouchDB fits your buzzword bill here, but 
>>>>>> without more concrete descriptions of what you need (rather than less), 
>>>>>> we can’t help much.
>>>>>> 
>>>>>> And you didn’t address the network connectivity issue. If you plan to 
>>>>>> have device-to-device communication, and you are not Apple or Google 
>>>>>> making those devices and/or mobile operating systems, you won’t be 
>>>>>> having much luck, especially on the web platform.
>>>>> I'm thinking tactical environments & mesh networks, with intermittent 
>>>>> connectivity.  Updates propagate slowly, but with either automatic 
>>>>> fork/merge, or with eventual consistency.
>>>> Right, so far the theory, which the CouchDB replication protocol supports. 
>>>> Now in practice, say you are using PouchDB, how do you make one device’s 
>>>> browser talk to another device’s browser?
>>> Well... I would see this as a case of mesh networking.  An instance of 
>>> PouchDB, on a phone, might sync to one (or more) instances of CouchDB - 
>>> running on a laptop, or a server.  The basic model would be that of NNTP.  
>>> Updates would ripple through a mesh of instances.  My assumption is, that 
>>> any particular instance of Couch of Pouch needs to know one or more other 
>>> instances to connect to - and from there, stuff moves around.
>> that is more concrete and we can talk about it now, thanks for clarifying.
>> 
>>> Which comes back to... how well does this scale?  What's the largest mesh 
>>> network of Pouch/Couch instances that anybody has run in practice?
>> since the setup is very non-standard, there isn’t a lot of existing setups 
>> to look for.
>> 
>> I know of a PouchDB-running-inside-node.js on IoT devices scenario covering 
>> a large geographic area with mesh wifi, collecting data and replicating 
>> sensory data through the mesh up to one point that has an internet uplink, 
>> which then sends the whole bunch up to the cloud. At the time I was 
>> involved, the target for this was 1000s of devices, but I know little about 
>> the amount of documents flowing through the mesh.
>> 
>> Again, the replication model fully support this, but given enough data, the 
>> sensory data option might eventually be limited by data size / storage space 
>> available on the devices, to hold, potentially, all data from all devices.
>> 
>> For your use-case, you have a lot less data coming in, so I wouldn’t see 
>> much of an issue, overall.
> 
> 
> Do you, perhaps, have a reference for that implementation?

I do not, my company consulted on this with a large technology company on this. 
I’m not at liberty to disclose any details, or even names.

Best
Jan
—
> 
> Thanks,
> 
> Miles
> 
> -- 
> In theory, there is no difference between theory and practice.
> In practice, there is.  .... Yogi Berra
> 
> Theory is when you know everything but nothing works.
> Practice is when everything works but no one knows why.
> In our lab, theory and practice are combined:
> nothing works and no one knows why.  ... unknown

Reply via email to