This is the most fun file in Ditto: the pipeline. Events we encounter, for any reason, get pushed through the pipeline. Then the pipeline decides where to delegate them. Events from the relay, events created through Mastodon API. and events queried through the relay pool simply get pushed through the pipeline without any other state. Then subscriptions in various parts of the app receive the events they want.
It's a Pleoma-inspired design. I'm taking some of the best things I've learned over the years to apply them here.
https://gitlab.com/soapbox-pub/ditto/-/blob/develop/src/pipeline.ts
It's a Pleoma-inspired design. I'm taking some of the best things I've learned over the years to apply them here.
https://gitlab.com/soapbox-pub/ditto/-/blob/develop/src/pipeline.ts
Most of the problems with Ditto right now are actually in Soapbox, though. A lot of it not "just working" is that I didn't start adding real client support until yesterday.