I'm a little concerned with the added complexity of decoupling the datastore into two different systems that are relied on for application logic. What are good strategies to maintain consistency between the two, in the event of a failure?
In the first example, what if the SQL transaction succeeds but the redis one fails? Would you rollback the SQL transaction?