Live data from Hacker News

Viewing profile — KraftyOne

KraftyOne

HN member
Joined
Thu, Jun 20, 2019, 5:49 PM UTC
HN karma
1,419
Public activity
193 items

About KraftyOne

Hello! I'm Peter Kraft. I love databases and distributed systems and recently co-founded DBOS to help developers build reliable software effortlessly.

Website: http://petereliaskraft.net/

Recent public activity

  1. story
  2. comment
    Comment #49116630

    This is something we mention in the third section of the article: dead tuples and autovacuum caused real performance hits, which we (partially) mitigated through index optimization…

  3. story
  4. comment
    Comment #49041358

    The core optimization is to buffer notifications in-memory and send them in a batch instead of sending them as part of every transaction. So that's a general-purpose optimization f…

  5. comment
    Comment #49041211

    If you mean the optimizations coming in Postgres 19, the original post addresses this: > As an aside, there’s been some online discussion of a Postgres patch ( https://github.com/p…

  6. comment
    Comment #49041109

    To be clear, it's not a custom patch to pg itself, but an application-side buffering and batching optimization.

  7. story
  8. story
  9. comment
    Comment #48769847

    Outbox's power is that it turns an atomicity problem into an idempotency problem. You atomically write to the outbox, then you have an idempotent "workflow" that processes events f…

  10. comment
    Comment #48769229

    You still need idempotency for side effects outside your database, that's true (and fundamental to durability). But now you get exactly-once semantics for operations on your databa…

  11. comment
    Comment #48767806

    That's what the post is about! Once you're doing that, you really do have transactions between the state and the queue.

  12. comment
    Comment #48767794

    Every item will be written to the queue exactly once (as the update is transactional). Queue processing may need at-least-once semantics, yes, depending on what exactly you're doin…

  13. comment
    Comment #48767681

    You build a distributed system on top of this! For example, you may have many distributed workers durably executing workflows from the Postgres-backed task queue. The Postgres tran…

  14. comment
    Comment #48767205

    Yes, the core design is building a workflow system on a database--essentially, replacing the central orchestrator most workflow systems use with a Postgres database. This previous …

  15. comment
  16. comment
    Comment #48766850

    The key is that the UDF's enqueue is transactional with the database update. Let's say the database update is inserting a new order. This provides the guarantee that if a new order…

  17. comment
    Comment #48766815

    Exactly! It's a distributed system, with many processes performing work in parallel, with a central database as a coordination point, used as little as possible. A mutex wouldn't g…

  18. story
  19. comment
    Comment #48698861

    Unfortunately, DSQL is still lacking many core Postgres features (most notably foreign keys) that DBOS and DBOSify depend on. DBOS works with most flavors of Postgres though, inclu…

  20. comment
    Comment #48698105

    Take any Temporal example and swap the imports and connection strings, it's a drop-in replacement :)

  21. comment
    Comment #48698101

    We'd need DBOS in C# first! It's something we're considering for the future--if you're working in C#, happy to chat about it, reach out at peter.kraft@dbos.dev.

  22. comment
    Comment #48698062

    Exactly, Postgres as an orchestrator instead of a Temporal server as an orchestrator. This page goes into more detail (for DBOS, but DBOSify is the same principle but using the Tem…

  23. comment
    Comment #48698053

    I'm very sorry about this. I'll figure out why the form wasn't responded to. In the meantime, email me directly at peter.kraft@dbos.dev.

  24. comment
    Comment #48698047

    Yes it can (with documented exceptions)! The suite is here: https://github.com/dbos-inc/dbosify-py/tree/main/tests/confo... Here's the documentation: https://github.com/dbos-inc/db…

  25. story