4 ms·
For low volume my recommendation would be to just use a traditional relational database configured for high availability. If you want to use Kafka and need dis
by oskari 9y ago
For low volume my recommendation would be to just use a traditional relational database configured for high availability.
If you want to use Kafka and need disaster recovery capabilities we typically recommend using Kafka Connect or other similar tools to replicate the data to another cluster or persistent storage system such as S3.
- theptip 9y ago+1. For use-cases which impose strict data durability requirements (either for business or regulatory reasons), I think it's unwise to use anything fancy like Kafka unless you've maxed out performance of your SQL database. For example, for credit card receipts, simply by the nature of the type of transaction, you're unlikely to be processing enough of these to put pressure on a SQL database. One $1/transaction per second means you're grossing north of $30m, which is easy to handle in even an unoptimized schema. Citus reckon you can get thousands to tens of thousands of writes per second[1] on Postgres, which would be grossing tens or hundreds of billions of dollars; this tech stack is suitable even when "low volume" becomes quite significant. Of course, Kafka is designed for situations where you need to process millions of writes per second, which is into "GDP of the whole world" territory if those writes are credit card receipts, so I'd contend you're unlikely to ever need something like Kafka scale for your credit card payment handling components. [1]: https://www.citusdata.com/blog/2017/09/29/what-performance-can-you-expect-from-postgres/ https://www.citusdata.com/blog/2017/09/29/what-performance-c...