Toggle navigation Christine Dodrill Blog Projects Resume Contact <p>As I have been digging through existing code, systems and the like I have been wondering what the next big direction I should go in is. How to design things such that the mistakes of the past are avoided, but you can benefit from them and learn better how to avoid them. I have come to a very simple conclusion, monoliths are too fragile.</p> <h2 id="Deconstructing.Monoliths">Deconstructing Monoliths</h2> <p>One monolith I have been maintaining is <a href="http://elemental-ircd.com">Elemental-IRCd</a>. Taking the head of a project I care about has taught me more about software engineering, community/project management and the like than I would have gotten otherwise. One of these things is that there need to be five basic primitives in your application:</p> <ol> <li>State - What is true now? What was true? What happened...