TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Queues Aren't the Right Abstraction

25 点作者 francesca大约 1 年前

10 条评论

rubenfiszel大约 1 年前
Inngest is very cool, and if you are interested in the topic but absolutely want to self-host, 2 other high-performance durable execution engines that enable all the above and that you can self-host and are open-source and mature would be temporal and windmill. Both can use postgresql as the queue (temporal can use cassandra too), the rest can be done leveraging the transactional properties of postgresql, such as atomic counters for the concurrency keys: <a href="https:&#x2F;&#x2F;github.com&#x2F;windmill-labs&#x2F;windmill&#x2F;blob&#x2F;main&#x2F;backend&#x2F;windmill-queue&#x2F;src&#x2F;jobs.rs#L649">https:&#x2F;&#x2F;github.com&#x2F;windmill-labs&#x2F;windmill&#x2F;blob&#x2F;main&#x2F;backend&#x2F;...</a> or re-queuing jobs that haven&#x27;t progressed when they should have (most likely, worker crashed).<p>There are very cool things you can do today without too much complexity with the primitives that modern database are capable of. Should one rebuild it for their startups, no, but if you were to extract the very core of the durable execution engine of windmill for instance, it would actually be surprisingly reasonable given that postgresql does the heavy lifting. I strongly believe the benefits of our platforms mostly come from the overall virtue to be standardized, opinionated and working out-of-the-box in a way that make everything fit together rather than the overall engineering complexity of it.
jesse11大约 1 年前
Having built my own queue-based data processing system and worked through a lot of pain in the past, I will say that I&#x27;m a huge fan of Inngest and what they are doing.<p>As for the article, I think the main point being driven here is:<p>&quot;building a system with queues requires much more than just the queue itself&quot;<p>I would imagine almost anyone who has built a production grade queue-based message processing system would agree.<p>For me, I would say that for the majority of software being developed, the investment to build all of that yourself just doesn&#x27;t make sense. Obviously there will be exceptions, but Inngest gives you incredible power at a very simple layer of abstraction.
moribvndvs大约 1 年前
We keep reaching for them because they work fine most of the time. This article would have been less click-bait and possibly more persuasive if instead of “QuEuEs R oVeR” you would have simply just explored some advanced scenarios that are tricky to solve and prescribed how your product makes it worth another line item on our monthly bill.
zer00eyz大约 1 年前
This feels like it turns into an ESB?<p>We went from ESB&#x27;s because the were opaque. And this seems like it&#x27;s very opaque.<p>All that work that you put into queues... its ugly but it&#x27;s transparent. You can rationalize it, you&#x27;re not abstracting things away into magic.
评论 #39854348 未加载
lelanthran大约 1 年前
&gt; You need queues for three core reasons:<p>&gt; They offer reliability through guaranteed delivery, persistence, and dead letter queues, so developers know they aren&#x27;t sending workloads into a black hole.<p>I disagree with this reason to use queues. If this is the only reason for using SQS or RabbitMQ or similar, perhaps the application is over-engineered.<p>If you want reliability, and that alone, use a transaction-based system.
评论 #39854950 未加载
评论 #39854605 未加载
1letterunixname大约 1 年前
This press release content marketing appears hung up on some mythical perfect ESB system containing kitchen sink cross-cutting concerns.<p>There are many tools in the toolbox for backend infrastructure: nosqls (memcache&#x2F;redis&#x2F;keydb), dlms (zk), kafka, rabbitmq, ejabberd, 0mq, nng. Some scale better than others, and some are more atomic or durable than others. OLTP and infrastructure orchestration will have different needs. Sometimes, cross-cutting concerns can be added by gating the sender, receiver, or both with &quot;controller&quot;-like middleware proxies or modifications.<p>&quot;Use good judgement&quot; is the prime directive.
crubier大约 1 年前
Get to the point: Temporal is lit and you&#x27;re building a competitor to it
lowbloodsugar大约 1 年前
That was a lot of reading to discover they’ve built a workflow engine. They don’t want to call it a workflow engine because there’s a million of those. So they can up with a new name for a workflow engine.
评论 #39854373 未加载
jansommer大约 1 年前
Spot on. This is what Durable Functions does on Azure and it&#x27;s brilliant for implementing complicated business processes and handling multiple events in one flow, in a resilient way where the logic is easy to follow.<p>One catch is that you&#x27;re going to have to version your code if your workflows&#x2F;orchestrations run for days, or if there&#x27;s no windows without running workflows. And there&#x27;s no built-in support for this, so expect to duplicate your entire workflow for new versions, so the old one can run to the end with the old code.
greenpinia大约 1 年前
If you’ve had a conversation with your team about using durable workflows instead of queues, how did you get a buy-in?
评论 #39855516 未加载