Thanks for the long answer! So responding to some of the points one by one:

  • using PostgreSQL w/ extensions for event sourcing: definitely, if you don’t need the sharding, scaling & replication features of Kafka, and the performance of Postgres is satisfactory, that’s the way to go! In fact, as I mentioned in the beginning, I’ve also explored implementing event sourcing on top of an SQL storage. However, if the volume of events that your are handling exceeds the capabilities of a single PostgreSQL storage, I think Kafka becomes a very good option (of course, you might also consider sharding/replicating PostgreSQL, but then the complexity of that system is at least as high as the Kafka one)

--

--

Software engineer, Functional Programming and Scala enthusiast, SoftwareMill co-founder

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Adam Warski

Adam Warski

Software engineer, Functional Programming and Scala enthusiast, SoftwareMill co-founder