How we’ve saved 98% in cloud costs by writing our own database - eviltoast
  • tsonfeir@lemm.ee
    link
    fedilink
    arrow-up
    48
    arrow-down
    2
    ·
    edit-2
    7 months ago

    we’ve replaced our $10k/month Aurora instances with a $200/month Elastic Block Storage (EBS) volume.

    Lol, i’m sure just refactoring it and using a different service could have lowered that price significantly.

    The description of their data says “relational database” to me, but don’t murder me for using such an unpopular phrase!

    • paysrenttobirds@sh.itjust.works
      link
      fedilink
      arrow-up
      17
      arrow-down
      1
      ·
      7 months ago

      I had the same thought. Like, I think Aurora is one of the most expensive ways to do this in AWS. But, since this particular set of data is so well-defined, and unlikely to change, roll your own is maybe not crazy. The transactions per second and size don’t seem that huge to me, so as things grow I imagine they can revisit this.

      • Oliver Lowe@apubtest2.srcbeat.com
        link
        fedilink
        arrow-up
        14
        ·
        7 months ago

        But, since this particular set of data is so well-defined, and unlikely to change, roll your own is maybe not crazy.

        I think that’s the trick here. A relational database lets you do a whole bunch of complex operations on all sorts of data. That flexibility doesn’t come for free - financially nor performance-wise! Given:

        • engineering chops
        • a firm idea of the type of data
        • a firm idea of the possible operations you may want to do with that data

        then there’s a whole range of different approaches to take. The “just use Postgresql” guideline makes sense for most CRUD web systems out there. And there are architecture astronauts who will push stuff because they can, not because they should.

        Every now and then it’s nice to think about what exactly is needed and be able to build that. That’s engineering after all!

    • Turun@feddit.de
      link
      fedilink
      arrow-up
      15
      ·
      7 months ago

      They never would have been able to get the same performance from any solution that incorporates a general purpose database.

      Their requirements/explicitly-not-required-ments include that it’s fine to drop 1s of data. That would be an insane proposition for any other database. Also their read/write rates and latency requirements are unusual to say the least.

      It’s the same thing as tiger beetle. Ridiculously narrow domains allow for ridiculous performance improvements compared to of-the-shelf solutions.

        • Turun@feddit.de
          link
          fedilink
          arrow-up
          4
          ·
          7 months ago

          A new database specifically designed for financial transactions.

          I’m not an expert on finance software, so I can’t critically assert how good they really are. But they claim much much higher throughput than traditional databases, higher fault tolerance, self healing networks if several replicas are running, etc.
          From a purely technical standpoint it’s interesting for being written in zig. Because the database scope is so narrow they know exactly how much memory they will need on startup and just allocate all required memory on startup and never allocate more, nor free the aquired memory.

      • fruitycoder@sh.itjust.works
        link
        fedilink
        arrow-up
        5
        ·
        7 months ago

        I’m really excited to see what forks of tiger Beatle for other domains look like. They, supposedly, built it to be able to modify the state machine to other data schemes, but that code mostly just made realize I had no idea what I was looking at.

        As soon as someone makes a KV on it, I’m tried to have be my ETCD database