Application Database, Solid Cache, Solid Queue: use one or many databases?

I was looking at the new Solid Cache and Solid Queue gems.

I wonder what are the best practices:

  1. Do you keep everything in a single PostgreSQL/MySQL database?
  2. Do you have 3 separate databases (1 for application, 1 for cache, 1 for queue)?
  3. Or what?

Happy new year :slight_smile:

I don’t have personal experience with either, but just listening to the talk at RailsWorld online for Solid Cache they mentioned separate database servers as they are configured using relaxed ACID guarantees since data loss is not a huge issue and it increases performance. Obviously you want full ACID guarantees for your regular data so unless you can configure different ACID semantics per database it seems you need different servers.

I’m not sure if this checks out. You can set the transaction isolation levels on a per transaction basis. My concern would be doing the mental work to make sure that setting a relaxed isolation level doesn’t negatively affect the attempted isolation level set on your regular data.

Based off that though, I don’t think multiple databases, much less multiple db servers would solve the problem. I’ll watch the video though so thanks for mentioning.