European Accelerationism
santiago-martins.com25 pointsby m124536 comments
> And yet, two messages can absolutely race.
The queuing and dequeuing of messages in an Actor's mailbox are atomic operations, so there cannot be a race condition within an Actor's state. An actor handles messages in sequential fashion. But yes there could be surprises by certain patterns on the incoming messages if that's what you meant. ATM-1 sends GetBalance to BankAccount
BankAccount replies Balance(500 EUR) to ATM-1
ATM-2 sends Withdraw(400 EUR) to BankAccount
ATM-1 sends Withdraw(200 EUR) to BankAccount
BankAccount replies NotEnoughFunds to ATM-1
ATM-1 sends GetBalance to BankAccount
BankAccount replies Balance(100 EUR) to ATM-1
ATM-1 would now display the problem to the user and show the new balance (and he should worry since somebody withdrew his money from another ATM).
I just have a couple of observations:
> Industry trusted Kafka & Druid to handle enterprise scale. No scaling pains. Ever.
From my (limited) experience, Kafka and Druid are not exactly simple pieces of infrastructure for most shops. Often requiring significant effort to scale and maintain.
Also, in the past I’ve had some pains supporting those self-hosting my open source projects, and just wanted to give some friendly suggestions:
- A quickstart guide plus a “Production tips” article would be really helpful for those self-hosting.
- A troubleshooting guide would help reduce common support requests.
- Creating a chat group or a forum can reduce the load as users might help each other out.
It’s mostly about small things that can help save you time and effort, while making it easier for people to adopt the project.
Besides that, I think a lot of the value DataDog provides is in the form of integrations with pretty much every other service out there. We use plenty of these at my day job and it’s particularly useful to connect PagerDuty/Slack to the monitoring system. Maybe these features would help you drive adoption over time, and enable more use cases too.