Closed DanielFroehlich closed 5 years ago
I know by theory every microservice can decide on its own. But for the sake of maintainability, I suggest we agree on a preferred idea.
Options I see:
- easy to implement
- changes can be easily propagted between pods by obersving the file and re-loading it.
- easy to debug / fix / change schema (simply look into the file)
- requires RWX PVC which is not always available (esp. in pub cloud)
Use some in memory databases like redis, datagrid etc.
- no disk needed
- lightnig fast
- changes can be subscribed to
- complex to deploy / monitor /operate/debug - skills required
Use a database like mongo/psql with corresponding operator
- can work with RWO Storage
- more familiar stuff
- if singleton database (PSQL) could be a single point of failure (would we use one central or each service with state its own isntance?)
(I have no expierence with that and cant assess)
Deploy AMQ Streams. Each service can emit events on it own topic to store data
- Real Cloud Native Design
- new red hat technology (AMQ Streams)
- works with rwo (probably, need to verify)
- new technology for most hackers
Please comment!
Maybe once we have the user stories more fleshed out we have a better common understanding what the actual technical requirements could be. That being said:
I vote for a combination of Option 5 (Kafka) and Option 3 (database):
In the long term, we will need to decide on how/where we persist states (Playlists, Auth Tokens).