<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: hmaxdml</title><link>https://news.ycombinator.com/user?id=hmaxdml</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 09 Apr 2026 13:51:01 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=hmaxdml" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by hmaxdml in "Go-Native Durable Execution"]]></title><description><![CDATA[
<p>Automatic crash detection for your process is built-in our Conductor offering. The library has a default recovery mode when used standalone.<p>What do you find strange with workflow versioning? Would love to consider improving the semantics. In fact, we started doing it: <a href="https://github.com/dbos-inc/dbos-transact-py/pull/598" rel="nofollow">https://github.com/dbos-inc/dbos-transact-py/pull/598</a></p>
]]></description><pubDate>Tue, 03 Mar 2026 17:19:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47235584</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=47235584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47235584</guid></item><item><title><![CDATA[New comment by hmaxdml in "Go-Native Durable Execution"]]></title><description><![CDATA[
<p>I notice you didn't provide any specific comparison alongside that comment, which makes me feel frustrated because I think the Temporal workflow SDK is very different. Architecturally, Temporal and DBOS are at two opposites of the durable execution spectrum. I'd love to understand what makes you think this work is a mere copy and paste. Would you be willing to share some more with me?</p>
]]></description><pubDate>Tue, 03 Mar 2026 02:26:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47227161</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=47227161</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47227161</guid></item><item><title><![CDATA[New comment by hmaxdml in "Go-Native Durable Execution"]]></title><description><![CDATA[
<p>Thanks for the comment (author here). I wanted this post to focus on the Golang specific implementation, not dwell on the durable execution ecosystem at large.<p>With respect to context, I don't know that anyone invented "having their own context". Go interface are extendable and pretty much every major framework I know of implement their own context.<p>Would love to learn more about the gaps that offset you. We're constantly improving here ;)</p>
]]></description><pubDate>Mon, 02 Mar 2026 17:26:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47221040</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=47221040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47221040</guid></item><item><title><![CDATA[New comment by hmaxdml in "Go-Native Durable Execution"]]></title><description><![CDATA[
<p>Conductor is about enterprise features like automatic workflow recovery, alerting, or RBAC. The GUI is a nice to have -- but all your workflow data are in Postgres. You can access it very easily.</p>
]]></description><pubDate>Mon, 02 Mar 2026 17:25:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47221023</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=47221023</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47221023</guid></item><item><title><![CDATA[Go-Native Durable Execution]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.dbos.dev/blog/how-we-built-golang-native-durable-execution">https://www.dbos.dev/blog/how-we-built-golang-native-durable-execution</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47160065">https://news.ycombinator.com/item?id=47160065</a></p>
<p>Points: 56</p>
<p># Comments: 19</p>
]]></description><pubDate>Thu, 26 Feb 2026 00:17:52 +0000</pubDate><link>https://www.dbos.dev/blog/how-we-built-golang-native-durable-execution</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=47160065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47160065</guid></item><item><title><![CDATA[New comment by hmaxdml in "Designing a Passively Safe API"]]></title><description><![CDATA[
<p>Durable execution has already been mentioned as the existing solution for this problem, but I would like to call out a specific pattern that DE makes obsolete: the outbox pattern. Imagine just being able to do do<p>send a()
send b()<p>And know both will be sent at least once, without having to introduce an outbox and re-architect your code to use a message relay. We can nitpick the details, but being able to "just write normal code" and get strong guarantees is, imo, real progress.</p>
]]></description><pubDate>Sat, 31 Jan 2026 17:00:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46838353</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=46838353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46838353</guid></item><item><title><![CDATA[New comment by hmaxdml in "Designing a Passively Safe API"]]></title><description><![CDATA[
<p>These are all important concerns, but I'd go for an off the shelf library that does it for me (disclaimer I work at <a href="https://github.com/dbos-inc" rel="nofollow">https://github.com/dbos-inc</a>)</p>
]]></description><pubDate>Sat, 31 Jan 2026 16:55:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46838309</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=46838309</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46838309</guid></item><item><title><![CDATA[Go-Native Durable Execution]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.dbos.dev/blog/how-we-built-golang-native-durable-execution">https://www.dbos.dev/blog/how-we-built-golang-native-durable-execution</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46693952">https://news.ycombinator.com/item?id=46693952</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 20 Jan 2026 16:38:25 +0000</pubDate><link>https://www.dbos.dev/blog/how-we-built-golang-native-durable-execution</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=46693952</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46693952</guid></item><item><title><![CDATA[New comment by hmaxdml in "Building a Durable Execution Engine with SQLite"]]></title><description><![CDATA[
<p>The hype is because DE is such an dev exp improvement over building your own queue. Good DE frameworks come with workflows, pub/sub, notifications, distributed queues with tons of flow control options, etc.</p>
]]></description><pubDate>Fri, 21 Nov 2025 22:07:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46009559</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=46009559</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46009559</guid></item><item><title><![CDATA[New comment by hmaxdml in "Show HN: DBOS Java – Postgres-Backed Durable Workflows"]]></title><description><![CDATA[
<p>one way is to follow <a href="https://www.linkedin.com/company/dbos-inc" rel="nofollow">https://www.linkedin.com/company/dbos-inc</a> for updates</p>
]]></description><pubDate>Fri, 14 Nov 2025 20:51:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45932026</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=45932026</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45932026</guid></item><item><title><![CDATA[New comment by hmaxdml in "Dbos: Durable Workflow Orchestration with Go and PostgreSQL"]]></title><description><![CDATA[
<p>Good call. We'll see how to integrate it in our docs better.<p>The cost of DBOS durable execution is 1 write per step (checkpoint the outcome) and 2 additional writes per workflows (upsert the workflow status, checkpoint the outcome). The write size is the size of your workflows/steps output.<p>Postgres can support several thousands writes per seconds (influenced by the write size, ofc): DBOS can thus support several thousands of workflows/steps per second.<p>Postgres scales remarkably well. In fact, most org will never out scale a single, vertically scaled Postgres instance. There's a very good write up by Figma telling how they scaled Postgres horizontally: <a href="https://www.figma.com/blog/how-figmas-databases-team-lived-to-tell-the-scale/" rel="nofollow">https://www.figma.com/blog/how-figmas-databases-team-lived-t...</a></p>
]]></description><pubDate>Fri, 03 Oct 2025 17:02:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=45465104</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=45465104</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45465104</guid></item><item><title><![CDATA[New comment by hmaxdml in "Dbos: Durable Workflow Orchestration with Go and PostgreSQL"]]></title><description><![CDATA[
<p>DBOS stores all the workflow metadata in postgres, which is readily queryable for observability. We've recently seen a user setup an entire Grafana dashboard to observe their numerous workflows.<p>A postgres server can host many databases, and multiple applications can use the same server. The same dashboard can be used to monitor them all.<p>With respect to recovery: A new Transact process will run a round of recovery at startup. Transact also exposes an admin server with a recovery endpoint.<p>For more elaborate scenarios, we have control plane options commercially available.</p>
]]></description><pubDate>Fri, 03 Oct 2025 14:19:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=45463321</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=45463321</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45463321</guid></item><item><title><![CDATA[New comment by hmaxdml in "Dbos: Durable Workflow Orchestration with Go and PostgreSQL"]]></title><description><![CDATA[
<p>We decided to use Postgres because of the relational semantics, the ease of integration with user applications, and it's remarkable popularity</p>
]]></description><pubDate>Fri, 03 Oct 2025 14:08:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45463203</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=45463203</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45463203</guid></item><item><title><![CDATA[New comment by hmaxdml in "Dbos: Durable Workflow Orchestration with Go and PostgreSQL"]]></title><description><![CDATA[
<p>It is an evolution. The DBOS workflow orchestrator places a DB at the center of your application to handle most of the complicated state management problems.</p>
]]></description><pubDate>Fri, 03 Oct 2025 13:07:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=45462557</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=45462557</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45462557</guid></item><item><title><![CDATA[New comment by hmaxdml in "Dbos: Durable Workflow Orchestration with Go and PostgreSQL"]]></title><description><![CDATA[
<p>Thanks for posting! I am one of the author, happy to answer any question!</p>
]]></description><pubDate>Fri, 03 Oct 2025 02:39:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45458295</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=45458295</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45458295</guid></item><item><title><![CDATA[New comment by hmaxdml in "I solved a distributed queue problem after 15 years"]]></title><description><![CDATA[
<p>:wave: Hey there, I'm working on the Go library and just wanted to confirm your suspicion:<p>"since Golang doesn't have decorators in the same way Python does, we still have to have code doing the kind of "manual callback" style I mentioned"<p>That's exactly right, specifically for steps. We considered other ways to wrap the workflow calls (so you don't have to do dbos.RunWorkflow(yourFunction)), but they got in the way of providing compile time type checking.<p>As Qian said, under the hood the Golang SDK is an embedded orchestration package that just requires Postgres to automate state management.<p>For example, check the RunWorkflow implementation: <a href="https://github.com/dbos-inc/dbos-transact-golang/blob/0afae2e50104857103b83e492034d3bf58b485ac/dbos/workflow.go#L619" rel="nofollow">https://github.com/dbos-inc/dbos-transact-golang/blob/0afae2...</a><p>It does all the durability logic in-line with your code and doesn't rely on an external service.<p>Thanks for taking the time to share your insights! This was one of the most interesting HN comment I've seen in a while :)</p>
]]></description><pubDate>Tue, 09 Sep 2025 21:25:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=45189427</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=45189427</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45189427</guid></item><item><title><![CDATA[Bye bye 3 way handshake]]></title><description><![CDATA[
<p>Article URL: <a href="https://billatnapier.medium.com/bye-bye-three-way-handshake-and-hello-to-0-rtt-d11d9c4f4fdf">https://billatnapier.medium.com/bye-bye-three-way-handshake-and-hello-to-0-rtt-d11d9c4f4fdf</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43638148">https://news.ycombinator.com/item?id=43638148</a></p>
<p>Points: 22</p>
<p># Comments: 5</p>
]]></description><pubDate>Wed, 09 Apr 2025 21:22:44 +0000</pubDate><link>https://billatnapier.medium.com/bye-bye-three-way-handshake-and-hello-to-0-rtt-d11d9c4f4fdf</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=43638148</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43638148</guid></item><item><title><![CDATA[New comment by hmaxdml in "PostgreSQL Full-Text Search: Fast When Done Right (Debunking the Slow Myth)"]]></title><description><![CDATA[
<p>It is very good at doing the job that people over-eagerly offload to specialized services. Queues, notifications, scheduled jobs. And can be specialized with extensions.</p>
]]></description><pubDate>Wed, 09 Apr 2025 02:43:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=43628431</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=43628431</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43628431</guid></item><item><title><![CDATA[New comment by hmaxdml in "The New Three-Tier Application"]]></title><description><![CDATA[
<p>It is a library you import to annotate your code. Most APIs do have a service layer that need some form or orchestration. This library makes the service layer automatically orchestrated.<p>Your workers too can import the library and have embedded orchestration.<p>In process durable execution gives you freedom for a lot longer than having to hire Airflow or Temporal. You just need postgres (which you likely already have)</p>
]]></description><pubDate>Sun, 23 Mar 2025 18:24:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=43454731</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=43454731</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43454731</guid></item><item><title><![CDATA[New comment by hmaxdml in "Running Durable Workflows in Postgres Using DBOS"]]></title><description><![CDATA[
<p>Thanks for the suggestion! One way would be to drop a note on discord. Otherwise there is a contact form <a href="https://www.dbos.dev/contact" rel="nofollow">https://www.dbos.dev/contact</a>.</p>
]]></description><pubDate>Wed, 11 Dec 2024 18:13:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=42390838</link><dc:creator>hmaxdml</dc:creator><comments>https://news.ycombinator.com/item?id=42390838</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42390838</guid></item></channel></rss>