Enabling flexible, distributed IoT solutions that can be tailored to specific verticals and use cases