We actually use dapr which provides abstraction layer over all of those things including
State management, Pub/sub, etc..
So it’s really easy to switch between them without changing the code at all.
https://docs.dapr.io/developing-applications/building-blocks...