Live data from Hacker News

Ditto: Real-time sync for apps even without the internet

ditto.live

61–70 of 89 posts

Re: Ditto: Real-time sync for apps even without the internet

#61
From Ditto's "privacy policy":

Ditto uses your personal information in the following instances: ... Deliver direct marketing communications to you regarding our products and services that we may think are of interest to you. ... We share Personal Information with third parties ... Depending on how you use the Site or Services, the following categories of third parties collect data on our behalf or receive Personal Information ... Advertising and marketing partners.[1]

That pretty much says what they're really doing.

[1] https://www.ditto.live/legal/privacy-policy

Re: Ditto: Real-time sync for apps even without the internet

#62

Max, CoFounder of Ditto here So happy to see the support from the Hacker News community. I should mention Ditto is a massively ambitious company, we are doing fantastic with traction across major industries. Our entire core code base is written in Rust and I know HN goes crazy for Rust. If you’re really interested in working on very hard problems like CRDTs, partial replication, query based replication, peer to peer…

Hi Max, this is a really cool technology and touches a lot of areas I'm personally interested in. If I wasn't happy with my current job I'd even consider applying.

I had a poke around your documentation but didn't find a high level system architecture. Without having to dig into the open source code could you provide a link to somewhere I can read about the underlying data model and how it works? Do you have a paper or patent describing this technology anywhere? Thanks!

Re: Ditto: Real-time sync for apps even without the internet

#63
post #61

From Ditto's "privacy policy": Ditto uses your personal information in the following instances: ... Deliver direct marketing communications to you regarding our products and services that we may think are of interest to you. ... We share Personal Information with third parties ... Depending on how you use the Site or Services, the following categories of third parties collect data on our behalf or receive Personal In…

This is even worse than google/facebook... with them, you're pretty sure they won't sell your data, but only sell your eyes to advertisers... here, they sell bulk, raw data to possibly many third parties.

Re: Ditto: Real-time sync for apps even without the internet

#64

Max, CoFounder of Ditto here So happy to see the support from the Hacker News community. I should mention Ditto is a massively ambitious company, we are doing fantastic with traction across major industries. Our entire core code base is written in Rust and I know HN goes crazy for Rust. If you’re really interested in working on very hard problems like CRDTs, partial replication, query based replication, peer to peer…

Hi Max, this is a really cool technology and touches a lot of areas I'm personally interested in. If I wasn't happy with my current job I'd even consider applying. I had a poke around your documentation but didn't find a high level system architecture. Without having to dig into the open source code could you provide a link to somewhere I can read about the underlying data model and how it works? Do you have a paper…

I did some digging as well and it looks like their docs have a pretty good overview [1]. (And to be perfectly honest, it looks like they've done a very thorough job with them! I'm impressed!)

1: https://docs.ditto.live/javascript/common/how-it-works/mesh-...

Re: Ditto: Real-time sync for apps even without the internet

#65

Looks interesting but a few questions I don’t see answered in the docs: How do permissions work? Ie if I had a notes app, and wanted users to only be able to upset and query _their_ notes, how do I make that happen? Why no LAN for web browser mode? A pwa with offline support should be able to sync with other resolvable ips on the same pan, no? Hopefully WebBluetooth will be available soon too?

Looks like LAN depends on multicast for discovery, which isn't available in browsers as far as I can tell: https://docs.ditto.live/javascript/common/mesh-network/suppo... Regardless you definitely wouldn't be able to do browser-to-browser discovery and connection via HTTP or WebSockets, since you can't create a web server in browser, but I imagine you could do P2P via WebRTC if you can just find a way to discover the…

Perhaps the Web Share API [1]? Once you've got the share prompt up, the end user could use AirDrop or similar?

1: https://developer.mozilla.org/en-US/docs/Web/API/Web_Share_A...

Re: Ditto: Real-time sync for apps even without the internet

#67
post #61

From Ditto's "privacy policy": Ditto uses your personal information in the following instances: ... Deliver direct marketing communications to you regarding our products and services that we may think are of interest to you. ... We share Personal Information with third parties ... Depending on how you use the Site or Services, the following categories of third parties collect data on our behalf or receive Personal In…

Adam (Ditto cofounder) - thanks for the feedback! I can see how this can create the wrong impression and will follow up with our counsel to improve the language.

To be clear, we are not in the business of selling personal information. We are in the "picks and shovels" business - building great tools for other developers to use. Both myself and cofounder Max are app developers by background and we got into infrastructure software by wanting to simplify app development for ourselves and others. P2P is highly motivating because it enables use-cases that have greater data control and privacy - both of which are deeply important to us.

Re: Ditto: Real-time sync for apps even without the internet

#68
post #26

How is it different than all the open source peer-to-peer sync tools, such as Dat/Hypercore, or PouchDB?

We use multihop ad hoc network connections! That’s the BIG thing that we add to the mix!

That's pretty cool. Care to hint a bit at how your solution relates to aodv or batman?

Re: Ditto: Real-time sync for apps even without the internet

#69
post #61

From Ditto's "privacy policy": Ditto uses your personal information in the following instances: ... Deliver direct marketing communications to you regarding our products and services that we may think are of interest to you. ... We share Personal Information with third parties ... Depending on how you use the Site or Services, the following categories of third parties collect data on our behalf or receive Personal In…

Adam (Ditto cofounder) - thanks for the feedback! I can see how this can create the wrong impression and will follow up with our counsel to improve the language. To be clear, we are not in the business of selling personal information. We are in the "picks and shovels" business - building great tools for other developers to use. Both myself and cofounder Max are app developers by background and we got into infrastruct…

You wrote your terms, which officially say you are in the business of selling personal information. Informal comments to the contrary have little contractual value.

Re: Ditto: Real-time sync for apps even without the internet

#70
Might seem like odd questions, but is there a plan to handle the "too much data" case? and how protocol agnostic can this be? This seems really cool, and I can think of some strait forward uses for it ... but working on a satellite project where communications are 75% of the hassle, this sort of thing seems like it could be very useful...

If it can deal with all the "weird" (its very normal for space, just not used anywhere else) batched radio communication standards from the Consultative Committee for Space Data Systems (CCSDS) then intermittent communications aren't as big of a problem.

However it will also need to handle "old data that can be deleted client side". A satellite will generate a lot of data that it doesn't need to keep but will want to transfer to the ground and keep on the ground, telemetry and tracking metrics, system statuses etc. One way is to keep all this buffered on the satellite, and transmit to the ground, then you can throw it away, etc.. But having a synchronised store is a much simpler programming model, you push important data into the store and let it look after itself, and simple code is easier to make more reliable and reliability is key for anything in aerospace. However it can't result in the remote device being "full", it's a 100% non-starter. The client/remote end has to be able to throw away old/expired data while the central store is able to keep that data, without requiring awkward secondary systems polling the latest state on the ground side to save current data into a separate system to store historical data, that would just be shifting the complexity around.

Post reply on HN