{'fraction_non_alphanumeric': 0.012307692307692308, 'fraction_numerical': 0.0, 'mean_word_length': 5.136792452830188, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Droplets: Breaking Monolithic Applications Apart

Most current systems are built around a monolithic structure that integrates all the services offered. Such a paradigm has been used for many years and is now proving to have many limitations. This is partly because, with the advent of distributed systems, there is a need to distribute the intelligence and control among applications and network entities. Also due to heterogeneous data or systems that an application has to manage, it costs too much to rebuild the application every time a new service has to be supported. It would be better to add such services while the application is running. This paper attempts to show the benefits of a component-based application against a monolithic one and it introduces a new type of software components, called droplets based on dynamically loadable libraries. Droplets are used to implement selected application services and have the ability to be modified or added to the application while it is running, thus allowing to dynamically modify the application behavior or to extend its functionality at runtime. Finally the paper shows how to design and implement droplet-based applications and demonstrates how the droplet paradigm has been successfully integrated in an existing commercial application.