In this post we will be talking about how important the choice of data structure and algorithms to the overall performance of any software. With highly transactional software, performance optimisation is an integral part of the development process. These optimisations may come in many different forms like using certain design patterns, improving your network configuration and even down to algorithms and data structures used in your code.