What about NoSQL mechanisms such as Redis, MongoDB, or CouchDB? Unfortunately, you can't escape these problems. In order to persist an Aggregate using Redis, you need to serialize it into a string before setting the value. If you use PHP serialize/unserialize methods, you'll face namespace or class name refactoring issues again. If you choose to serialize in a custom way (JSON, custom string, and so on.), you'll be required to again rebuild the Value Object during Redis retrieval.