Centralized versus decentralized application architecture