Note that unless you’re a Lemmy instance admin, this doesn’t have much use to you.

Until this package came along, if you wanted a bot that responds to events, you had to manually traverse all comments/posts/whatever at a fixed interval. With this package you can actually react to events directly from the database. It’s implemented in a very efficient way by connecting the package directly to the Lemmy database and using native Postgres features to get the events (LISTEN/NOTIFY if you want to get technical).

The webhooks themselves are inserted into a separate SQLite database (API is coming) and allow for both simple and complex filtering of the incoming data. The system is already in use by two of my bots, @ChatGPT@lemmings.world and @DallE@lemmings.world who now both receive the information about being tagged in a comment in seconds (the actual reply takes a little longer, but that’s because of the nature of the bot).

Currently you can be notified about a post or a comment, other types are trivial to include as well.

Let me know what you think!

  • Rikudou_Sage@lemmings.worldOP
    link
    fedilink
    English
    arrow-up
    2
    ·
    7 months ago

    Pub-sub might work for some use cases, but it wouldn’t work at all for mine. I host my bots on AWS Lambda so I don’t pay for anything, unless the code is actually running. So the webhook essentially wakes the virtual machine up and after processing is done, it goes back to sleep.

    Yeah, they make a new ongoing tls connection on every https webhook. Which doesn’t necessarily mean all db events, there’s quite powerful filtering available and everyone should use it, sending a ping for db events you don’t need to seems quite wasteful.

    • solrize@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      7 months ago

      If we maintain the fantasy (and we may as well) of Lemmy someday overtaking Reddit, that can mean 100s of new posts per second that bots might want to inspect. So that’s quite a lot of vm restarts as well as load on the side sending out the webhook queries. I guess this stuff will have been redesigned a few more times by then though, so it is ok. Lemmy at the moment isn’t ready for such volume for many other reasons too.

      • Rikudou_Sage@lemmings.worldOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        7 months ago

        Well, it stays warmed up some 15 seconds or so, but the important part is you don’t pay for that uptime. And if my bots ever get to 100s of requests per second, I’m gonna have to shut them down, I’m not that rich.