memory allocations should be in an arena pool
in order to design-away-failure do not treat memory allocations on their own. usually you will want to group allocations with related object. therefore grouping reduces the failure points to 1.
expand automatically and bound can be applied to prevent oom. also allows you to keep control if allocation failure is acceptable.