Connecting Distributed Apps to Databases: Pros and Cons