CRUD applications are developed brainlessly. They&#x27;re more challenging than it seems.<p>It&#x27;s interesting that people develop CRUD applications in garbage-collected languages because manual memory management is a pain, but they&#x27;ll gladly expose manual <i>data</i> management to the end user without worrying about analogous data bugs.<p>If data bugs are important, you need your data management system to have some qualities of a garbage collection system (tracing, reference counting) or it needs to be self-repairing (fill in missing data on demand). This is actually a challenging problem, assuming your data is important. This is why cache invalidation is one of the Two Hard Things in programming according to Martin Fowler.