We successfully used a componentized architecture to encapsulate all the functionality that we developed so far. We were also able to develop a persistence strategy to write out our core tick list and accompanying analytics in the EDN format. This was all done by writes to functions that employed the
with-open macro, which contained the IO that had side effects and cleaned up resources when finished. The next chapter will explore ways of searching for data we've saved.