|
|
|
|
|
by rkhacker
1030 days ago
|
|
>If you had a database and some separate messaging like ZeroMQ, Rabbit, Kafka, you’re going to get race conditions. There’s always going to be a potential race where you have two messages - one is going to the disk and one is going to the network. If someone else is listening and sees both of them, they could potentially get them in either order. So it’s much, much simpler to just have one path. Foundation is really fast, so it works great. Having difficulty parsing this justification. How will a client code listening to an event get two events - one from network, and one from disk in case of any of the queuing systems mentioned here? I am also curious to know how the FoundationDB act like a messaging system apart more than a message store? |
|
otherwise, you have a transaction to write to your database and a separate call to the message queue, which introduces the race condition.
https://apple.github.io/foundationdb/features.html#watches