<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: rbatiati</title><link>https://news.ycombinator.com/user?id=rbatiati</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 01 Nov 2026 14:40:33 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=rbatiati" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by rbatiati in "Building a high-performance ticketing system with TigerBeetle"]]></title><description><![CDATA[
<p>Hi! Rafael from TigerBeetle here!<p>> One way to keep those faster speeds in Tigerbeetle for real-time workloads is microbatching incoming real-time transactions to Tigerbeetle at an interval of every second or lower, to take advantage of Tigerbeetle's blazing fast batch processing speeds.<p>We don’t recommend artificially holding transfers just for batching purposes.
René actually had to implement a batching worker API to work around a limitation in Python’s FastAPI, which handled requests per process, and he’s been very clear in suggesting that such would be better reimplemented in Go.<p>Unlike most connection-oriented database clients, the TigerBeetle client doesn’t use a connection pool, because there’s no concept of a “connection” in TigerBeetle’s VSR protocol.<p>This means that, although you can create multiple client instances, in practice less is better. You should have a single long-lived client instance per process, shared across tasks, coroutines, or threads (think of a web server handling many concurrent requests).<p>In such a scenario, the client can efficiently pack multiple events into the same request, while your application logic focuses solely on business-event-oriented chains of transfers. Typically, each business event involves only a handful of transfers, which isn't a problem of underutilization, as they'll be submitted together with other concurrent events as soon as possible.<p>However, if you’re dealing with a non-concurrent workload, for example, a batch process that bills thousands of customers for their monthly invoices, then you can simply submit all transfers at once.</p>
]]></description><pubDate>Tue, 11 Nov 2025 13:28:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=45887037</link><dc:creator>rbatiati</dc:creator><comments>https://news.ycombinator.com/item?id=45887037</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45887037</guid></item><item><title><![CDATA[New comment by rbatiati in "Jepsen: TigerBeetle 0.16.11"]]></title><description><![CDATA[
<p>Hi there! We do have a C client, the libtb_client. It's written in Zig and exposes an FFI interface that is consumed by all other TigerBeetle clients.<p>We don't publish the pre-compiled libs yet, but it will be available soon when we stabilize the API. For now, it can be built locally from source.<p>Example of using the C client:
<a href="https://github.com/tigerbeetle/tigerbeetle/blob/main/src/clients/c/samples/main.c">https://github.com/tigerbeetle/tigerbeetle/blob/main/src/cli...</a></p>
]]></description><pubDate>Mon, 09 Jun 2025 10:31:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=44222987</link><dc:creator>rbatiati</dc:creator><comments>https://news.ycombinator.com/item?id=44222987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44222987</guid></item><item><title><![CDATA[New comment by rbatiati in "Why Oxide Chose Illumos"]]></title><description><![CDATA[
<p>Letting licensing alone, I think they have a couple of killer reasons to choose Illumos: It's a fine operating system, and it's much easier for them to land the fixes/features they need on the Illumos kernel than if they've built on Linux.</p>
]]></description><pubDate>Fri, 13 Sep 2024 13:36:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=41531159</link><dc:creator>rbatiati</dc:creator><comments>https://news.ycombinator.com/item?id=41531159</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41531159</guid></item><item><title><![CDATA[New comment by rbatiati in "64-bit bank balances ‘ought to be enough for anybody’?"]]></title><description><![CDATA[
<p>> If for some reason you need to divide $10 by 3, it should result in three numbers: 3.33, 3.33, and 3.34<p>Exactly! We don't try to "fix this math problem"; instead, we just want to reduce the surface area by using plain integers instead of decimal floating points.</p>
]]></description><pubDate>Tue, 19 Sep 2023 13:54:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=37569973</link><dc:creator>rbatiati</dc:creator><comments>https://news.ycombinator.com/item?id=37569973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37569973</guid></item><item><title><![CDATA[New comment by rbatiati in "64-bit bank balances ‘ought to be enough for anybody’?"]]></title><description><![CDATA[
<p>Rounding monetary values is a complex, opinionated and business-defined operation. Sometimes it's even orthogonal to the datatype used.<p>Things get out of hand when you need to round multiple different things that have to sum up at the end.<p>For example:<p>- Items in an invoice are rounded and summed. (eg. $1.1234 * 5.678kg)<p>- Payments of an invoice can be paid in multiple installments, with interests that are also rounded (eg. 1.77% per month).<p>- The value paid of interest *per item* must match the total value paid of interest in all installments of all invoices in the same period.</p>
]]></description><pubDate>Tue, 19 Sep 2023 13:32:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=37569717</link><dc:creator>rbatiati</dc:creator><comments>https://news.ycombinator.com/item?id=37569717</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37569717</guid></item><item><title><![CDATA[New comment by rbatiati in "Two types of C programmers"]]></title><description><![CDATA[
<p>I've always thought of myself as the second type of C programmer... I only used C if no other option was available (yeah, it was indeed fear!).
After I started programming in Zig, I realized I really appreciated all of C's simplicity and (lack of) features, but now in "Zig fearless mode", it makes me feel like I always belonged to the first group.</p>
]]></description><pubDate>Sun, 23 Apr 2023 21:13:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=35680693</link><dc:creator>rbatiati</dc:creator><comments>https://news.ycombinator.com/item?id=35680693</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35680693</guid></item></channel></rss>