We recently had to re-invent a high-availability queueing engine like RabbitMQ (for various reasons).
Naturally this turned out to be more time consuming and expensive than expected.
What type of things would you avoid rebuilding at all costs? Which types of components should rather be reused?
2
Just follow the cost benefit analysis. You should avoiding re-inventing all things that Cost_To_Acquire + Maintenance_Cost + Risk
is higher then the costs to build the component.
Cost to Acquire
can be the cost to purchase a license, pay training or just spend hours studying.
The Risk is far higher for any new product: it is not fully tested, has not known problems, has no community around it, and any plug-ins/tweaks will have to be reinvented.
2