I don't think I'm qualified enough to speak about that 😅
... yet! (Still converting a bunch of the TypeScript and Go code to Swift. Man is this complicated...)
What are your thoughts about storage local compute? I wrote about this in regards to Solid because we were seeing BFFs that just accumulated people's data because "talking to a pod is too hard"
atproto is heavily architected around a hard separation between data hosting and data aggregation/presentation. we want to keep hosting as cheap as possible - going viral shouldn’t cost you money! I suppose in atproto, the appview *is* a BFF, with the PDS network being the “real” backend
these generic APIs often have issues with underfetching (not enough data for a screen, need multiple requests or worse — multiple roundtrips) and overfetching (grabbing more stuff that this particular screen doesn’t actually need). the idea with BFF is to be more tailored “server part of the client”
yeah, for solid it was this notion that interacting with a pod and lots of small files was hard, where as "stick everything in a huge postgresql database" was easy, but Solid doesn't really have a way to do sync (there is Linked Data Notifications, but that's not really sync)
So you end up with a postgresql containing data that's incorrect or has been deleted, because it wasn't refetched again, and you have no clear policies on data segregation and use: once your pods' data is in someone's postgresql database, what they do with the data is anyone's guess.
Yeah, for Solid the privacy controls in the pod are really what makes storage-local compute a rather interesting notion — sure, you can always do BFF, but if you're needing to aggregate data or have continuous access to the pod, maybe you're better off paying the pod owner / operator for compute.
It'd actually be bsky paying bsky for Jerry going viral, but if you go viral than bsky would be paying you for the extra load on your infra, maybe? idk.
It would be great if you could provide some use-case and definition of what you mean by BFF. I've worked in this area, so I'm interested, but I fear my experience is biasing me towards thinking I know what context you are talking about.