Ill-fated code rewrite crusades often seem to be linked with the Second System Effect (<a href="https:&#x2F;&#x2F;umich.instructure.com&#x2F;files&#x2F;884126&#x2F;download?download_frd=1" rel="nofollow">https:&#x2F;&#x2F;umich.instructure.com&#x2F;files&#x2F;884126&#x2F;download?download...</a>  ... page 55).<p>Excerpt:<p><i>An architect&#x27;s first work is apt to be spare and clean. He knows he
doesn&#x27;t know what he&#x27;s doing, so he does it carefully and with
great restraint. As he designs the first work, frill after frill and embellishment
after embellishment occur to him. These get stored away to be
used &quot;next time.&quot; Sooner or later the first system is finished, and
the architect, with firm confidence and a demonstrated mastery of
that class of systems, is ready to build a second system.
This second is the most dangerous system a man ever designs.
When he does his third and later ones, his prior experiences will confirm each other as to the general characteristics of such systems,
and their differences will identify those parts of his experience that are particular and not generalizable.</i><p>And from the OP, frill by frill :-)<p><i>I wanted to try out new, shinny technologies like Apache Cassandra, Virtualization, Binary Protocols, Service Oriented Architecture, etc.
</i><p>To OP&#x27;s credit, he took a step back and learned from his mistakes.<p>Also related... Second System Effect may not only apply for your second system ever. It may also bite you designing the second system in a new problem domain you&#x27;re unfamiliar with. I can admit I&#x27;ve built a few second systems in my time ;-)