3 ms·
I think the first "big tech" adopter would be Apple if anything. Their entire email stack is standard protocols. But you have to ask on that scale, what would
by hyhconito 2y ago
I think the first "big tech" adopter would be Apple if anything. Their entire email stack is standard protocols.
But you have to ask on that scale, what would it bring them other than change if everything already works fine?
- noprocrasted 2y ago> what would it bring them other than change if everything already works fine? IMAP is absolutely terrible on unreliable connections. A connectionless protocol based on HTTP would do much better in those conditions.
- hyhconito 2y agoI'm not sure it does if I'm honest. The encapsulation via JSON is quite bad and transactional model of HTTP is non-existent. One of our key problems on our platform is deciding on how to handle failures like that in transactional systems. Email is to some degree transactional due to the distributed state. It's going to get ugly. IMAP is ugly but that is all well understood.
- brongondwana 2y agoThe big benefit with JMAP is the state strings and /changes operation which allows even in the face of failures to recovery quite cleanly. It's really more a data synchronising protocol (RFC8620) with email support on top (RFC8621) and the new protocols coming in.
- hyhconito 2y agoSection 3.10 of RFC8620 scares me. I know a lot about that and a lot of the complexity around that trite point is missing. Note I've designed and built a complex messaging system that runs over HTTP over unreliable connections and run it in production for 15 years so I know what can and does go wrong. Popcorn at the ready.
- Semaphor 2y agoIt’s not as if Fastmail haven’t run JMAP in production at a pretty big level for quite some time by now.
- hyhconito 2y agoAnd I dumped them because their client was buggy, doesn’t work offline on mobile devices and I had to use IMAP anyway…
- spondyl 2y ago> doesn’t work offline on mobile devices To some degree, that isn't true anymore as of last week but of course, you meant when you used it, not generally: https://www.fastmail.com/blog/offline-in-beta/ https://www.fastmail.com/blog/offline-in-beta/
- hyhconito 2y agoOh so some of it works offline. Useless to me. Seriously. I write a lot of email on planes and do a lot of email management. All that works on the default Apple stuff as shipped other than account management. Using IMAP and iCal etc.
- NoahKAndrews 2y agoHave you looked at their list of what doesn't work offline? It seems like it's mainly attachment management limitations than limitations of managing the emails themselves.
- Mailtemi 2y agoJMAP uses fewer resources server-side, and with their scale, it will probably reduce operating costs. But it will depends on how much they will save compared with devel/migration costs.
- hyhconito 2y agoIt may use less sockets but that doesn't necessarily mean less resources. Parsing JSON is expensive, especially when there are binary types interleaved in it.
- jeltz 2y agoNah, JMAP is optimized to make fewer and cheaper calls to the server. I agree that it was a mistake to use JSON for JMAP but I doubt the overhead of using JSON matters in practice compare to the benefits. Parsibg JSON with SIMD instructions is very cheap.
- Mailtemi 2y agoCan you give an example of expensive binary data parsing? Having implemented JMAP and IMAP protocols myself, I haven’t encountered a need in either protocol to send binary data to the server for sync/search operations that would require the server to perform expensive parsing. JMAP offers many improvements, such as a stable messageId for each message and a state mechanism that allows the server to be queried for changes since the last saved state. This avoids the need for numerous IMAP SELECT commands per folder to check the state using CONSTORE/QRESYNC. If CONSTORE/QRESYNC aren’t supported by the client, it results in very costly chunked queries just to verify if message flags are still the same. The same applies to SEARCH—if a user has many folders, it requires multiple network hops to SELECT and query each folder. With JMAP, this can be done in a single API call.