<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: KraftyOne</title><link>https://news.ycombinator.com/user?id=KraftyOne</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 30 May 2026 19:44:45 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=KraftyOne" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by KraftyOne in "Building durable workflows on Postgres"]]></title><description><![CDATA[
<p>Secrets are orthogonal to durable execution--what are your concerns about using them together?</p>
]]></description><pubDate>Thu, 28 May 2026 19:55:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48314502</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=48314502</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48314502</guid></item><item><title><![CDATA[Building durable workflows on Postgres]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.dbos.dev/blog/postgres-is-all-you-need-for-durable-execution">https://www.dbos.dev/blog/postgres-is-all-you-need-for-durable-execution</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48313530">https://news.ycombinator.com/item?id=48313530</a></p>
<p>Points: 347</p>
<p># Comments: 142</p>
]]></description><pubDate>Thu, 28 May 2026 18:41:46 +0000</pubDate><link>https://www.dbos.dev/blog/postgres-is-all-you-need-for-durable-execution</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=48313530</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48313530</guid></item><item><title><![CDATA[Postgres Is All You Need for Durable Execution]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.dbos.dev/blog/postgres-is-all-you-need-for-durable-execution">https://www.dbos.dev/blog/postgres-is-all-you-need-for-durable-execution</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48226873">https://news.ycombinator.com/item?id=48226873</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 21 May 2026 18:16:29 +0000</pubDate><link>https://www.dbos.dev/blog/postgres-is-all-you-need-for-durable-execution</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=48226873</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48226873</guid></item><item><title><![CDATA[What's Easy Now? What's Hard Now?]]></title><description><![CDATA[
<p>Article URL: <a href="https://brooker.co.za/blog/2026/05/18/whats-easy-whats-hard.html">https://brooker.co.za/blog/2026/05/18/whats-easy-whats-hard.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48195852">https://news.ycombinator.com/item?id=48195852</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 19 May 2026 16:49:37 +0000</pubDate><link>https://brooker.co.za/blog/2026/05/18/whats-easy-whats-hard.html</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=48195852</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48195852</guid></item><item><title><![CDATA[Goto Considered Harmful: Why Event-Driven Is a Poor Architecture]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.dbos.dev/blog/goto-considered-harmful-2026">https://www.dbos.dev/blog/goto-considered-harmful-2026</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48139103">https://news.ycombinator.com/item?id=48139103</a></p>
<p>Points: 2</p>
<p># Comments: 2</p>
]]></description><pubDate>Thu, 14 May 2026 18:16:42 +0000</pubDate><link>https://www.dbos.dev/blog/goto-considered-harmful-2026</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=48139103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48139103</guid></item><item><title><![CDATA[Build Reliable Notifications with Postgres]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.dbos.dev/blog/low-latency-reliable-messaging-with-postgres">https://www.dbos.dev/blog/low-latency-reliable-messaging-with-postgres</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48052932">https://news.ycombinator.com/item?id=48052932</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 07 May 2026 18:25:20 +0000</pubDate><link>https://www.dbos.dev/blog/low-latency-reliable-messaging-with-postgres</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=48052932</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48052932</guid></item><item><title><![CDATA[Who even uses jemalloc anyway?]]></title><description><![CDATA[
<p>Article URL: <a href="https://theconsensus.dev/p/2026/04/16/who-even-uses-jemalloc-anyway.html">https://theconsensus.dev/p/2026/04/16/who-even-uses-jemalloc-anyway.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48039551">https://news.ycombinator.com/item?id=48039551</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 06 May 2026 18:12:45 +0000</pubDate><link>https://theconsensus.dev/p/2026/04/16/who-even-uses-jemalloc-anyway.html</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=48039551</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48039551</guid></item><item><title><![CDATA[New comment by KraftyOne in "Does Postgres Scale?"]]></title><description><![CDATA[
<p>> Based on the shown graph, this is misleading at best, essentially false. After 120K writes/s p50 spikes from 10ms to 1s (1 second for a write!!!!). That's two orders of magnitude latency spike, and an unacceptable one for an OLTP workload. It clearly shows the server is completely saturated, which is clearly a non operational regime. Quoting 144K is equivalent to quoting the throughput of a highway at the moment traffic comes to a standstill.<p>> Based on this graph the highest number I'd quote is 120K. And probably you want to keep operating the server within a safe margin below peak, but since this is a benchmark, let's call 120K the peak. Because actually p50 is not even the clear-cut. It should be a higher percentile (say p95) at which latency is within reasonable bounds. But for the shake of not over complicating, it could be taken as a reference.<p>You definitely don't want to run a production system at saturation! But it's worthwhile to measure a complex system like Postgres at saturation, see when it gets there and how it behaves there, and then run at a slightly lower throughput.<p>> Therefore, you are not measuring Postgres peak performance, but rather Postgres performance under the IO constraints of this particular system. Certainly, 120K IOPS is the maximum that this particular instance can have. But it doesn't show if Postgres could do better under a more performant IO disk. Actually, a good test would have been to try the next instance (db.m7i.48xlarge) with 240K IOPS and see if performance doubles (within the same envelop of p50 latency) or not. And afterwards to test on an instance with local NVMe (you won't find this in RDS).<p>I've done some testing (not in the blog post)--doubling instance size/IOPS doesn't improve performance significantly because it doesn't affect the WAL bottleneck. Local NVMe should have a significant impact in theory, but I haven't tested this myself.<p>> 300 seconds test duration?? This is not operational. You are not accounting for checkpoints, background writer, and especially autovacuum. Given that workflow pattern includes UPDATEs, you must validate bloat generation (or, equivalently, bloat removal) by a) observing much longer periods of time (e.g. 1h) and b) making sure the autovacuum configuration (and/or individual table vacuum configuration if required) makes bloat contained in a stable way. Otherwise, shown performance numbers will degrade over time, making them not realistic.<p>Those are usage examples (notice the 1000 rps)--actual benchmarks were run at and were stable at much longer duration.</p>
]]></description><pubDate>Fri, 01 May 2026 03:08:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47970930</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=47970930</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47970930</guid></item><item><title><![CDATA[New comment by KraftyOne in "Does Postgres Scale?"]]></title><description><![CDATA[
<p>Yes, this benchmark deliberately uses RDS defaults to make the comparison fairer/more general.<p>One warning--the setting that would increase throughput the most (synchronous_commit = off) sacrifices durability to do so.</p>
]]></description><pubDate>Thu, 30 Apr 2026 21:48:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47968660</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=47968660</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47968660</guid></item><item><title><![CDATA[Does Postgres Scale?]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.dbos.dev/blog/benchmarking-workflow-execution-scalability-on-postgres">https://www.dbos.dev/blog/benchmarking-workflow-execution-scalability-on-postgres</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47966625">https://news.ycombinator.com/item?id=47966625</a></p>
<p>Points: 192</p>
<p># Comments: 95</p>
]]></description><pubDate>Thu, 30 Apr 2026 18:45:22 +0000</pubDate><link>https://www.dbos.dev/blog/benchmarking-workflow-execution-scalability-on-postgres</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=47966625</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47966625</guid></item><item><title><![CDATA[Measuring AI Ability to Complete Long Software Tasks]]></title><description><![CDATA[
<p>Article URL: <a href="http://muratbuffalo.blogspot.com/2026/03/measuring-ai-ability-to-complete-long.html">http://muratbuffalo.blogspot.com/2026/03/measuring-ai-ability-to-complete-long.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47923783">https://news.ycombinator.com/item?id=47923783</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 27 Apr 2026 16:32:19 +0000</pubDate><link>http://muratbuffalo.blogspot.com/2026/03/measuring-ai-ability-to-complete-long.html</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=47923783</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47923783</guid></item><item><title><![CDATA[Benchmarking How Postgres Scales]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.dbos.dev/blog/benchmarking-workflow-execution-scalability-on-postgres">https://www.dbos.dev/blog/benchmarking-workflow-execution-scalability-on-postgres</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47893949">https://news.ycombinator.com/item?id=47893949</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 24 Apr 2026 18:19:02 +0000</pubDate><link>https://www.dbos.dev/blog/benchmarking-workflow-execution-scalability-on-postgres</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=47893949</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47893949</guid></item><item><title><![CDATA[New comment by KraftyOne in "Async Python Is Secretly Deterministic"]]></title><description><![CDATA[
<p>Yes, this only applies for tasks created from the same (sync or async) function. If tasks are creating other tasks, anything is possible.</p>
]]></description><pubDate>Fri, 03 Apr 2026 20:08:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47631573</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=47631573</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47631573</guid></item><item><title><![CDATA[New comment by KraftyOne in "Async Python Is Secretly Deterministic"]]></title><description><![CDATA[
<p>It's documented behavior for the low-level API (e.g. asyncio.call_soon <a href="https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.call_soon" rel="nofollow">https://docs.python.org/3/library/asyncio-eventloop.html#asy...</a>). More broadly, this has been a stable behavior of the Python standard library for almost a decade now. If it does change, that would be a huge behavioral change that would come with plenty of warning and time for adjustment.</p>
]]></description><pubDate>Fri, 03 Apr 2026 20:06:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47631549</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=47631549</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47631549</guid></item><item><title><![CDATA[New comment by KraftyOne in "Async Python Is Secretly Deterministic"]]></title><description><![CDATA[
<p>It's been a stable (and documented) behavior of the Python standard library for almost a decade now. It's possible it may change--nothing is ever set in stone--but that would be a large change in Python that would come with plenty of warning and time for adjustment.</p>
]]></description><pubDate>Fri, 03 Apr 2026 20:03:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47631502</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=47631502</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47631502</guid></item><item><title><![CDATA[New comment by KraftyOne in "Async Python Is Secretly Deterministic"]]></title><description><![CDATA[
<p>That's the cool thing about this behavior--it doesn't matter how complex your program is, your async functions start in the same order they're called (though after that, they may interleave and finish in any order).</p>
]]></description><pubDate>Fri, 03 Apr 2026 19:22:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47630955</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=47630955</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47630955</guid></item><item><title><![CDATA[Async Python Is Secretly Deterministic]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.dbos.dev/blog/async-python-is-secretly-deterministic">https://www.dbos.dev/blog/async-python-is-secretly-deterministic</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47630592">https://news.ycombinator.com/item?id=47630592</a></p>
<p>Points: 79</p>
<p># Comments: 36</p>
]]></description><pubDate>Fri, 03 Apr 2026 18:55:12 +0000</pubDate><link>https://www.dbos.dev/blog/async-python-is-secretly-deterministic</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=47630592</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47630592</guid></item><item><title><![CDATA[Bridging Languages with Postgres and Workflows]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.dbos.dev/blog/making-languages-interoperable-with-postgres">https://www.dbos.dev/blog/making-languages-interoperable-with-postgres</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47459520">https://news.ycombinator.com/item?id=47459520</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 20 Mar 2026 19:35:50 +0000</pubDate><link>https://www.dbos.dev/blog/making-languages-interoperable-with-postgres</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=47459520</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47459520</guid></item><item><title><![CDATA[Making Workflows Work Right in Golang]]></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=46830147">https://news.ycombinator.com/item?id=46830147</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 30 Jan 2026 21:28:14 +0000</pubDate><link>https://www.dbos.dev/blog/how-we-built-golang-native-durable-execution</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=46830147</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46830147</guid></item><item><title><![CDATA[Building Decentralized Workflows That Scale]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.dbos.dev/blog/scaleable-decentralized-workflows">https://www.dbos.dev/blog/scaleable-decentralized-workflows</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46736438">https://news.ycombinator.com/item?id=46736438</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 23 Jan 2026 19:09:33 +0000</pubDate><link>https://www.dbos.dev/blog/scaleable-decentralized-workflows</link><dc:creator>KraftyOne</dc:creator><comments>https://news.ycombinator.com/item?id=46736438</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46736438</guid></item></channel></rss>