I think you hit the nail on the head.
You can write all the procedures you want in the Lexicon, at the end of the day records are written to PDS’s and you can’t control how users do that.
However… App Views have potential to store, index, and mutate data that doesn’t exist in PDS’s. Like an AR app that uses an open federated network of Visual Positioning Services. The App View would be a window into both the ATProto Network and the VPS’s.I am writing a custom lexicon and when it came time to implement the Client and App View this was something I was struggling with. At the moment I’m content with a hybrid approach? I write to the PDS, I read from the App View. The only benefit I would get by writing records through the app view would be to apply stricter validation than I was able to write into the lexicon rules. It seemed pointless though, since I can’t really stop anyone from writing records to their PDS, it would be fighting a losing battle for no rewards.
I do have an interesting case where I may actually need some server side processing power and a put method in the App View seems tempting, but I still may avoid it. Instead I’ll probably do quick simple writes of records, then have the app view process those events and prepare indexed data ready to consume through read requests to the App View.I’m developing an ATProto lexicon and I had not idea I could publish it via DNS like that.