Third option for me.
Communication is key, and minimising the reliance on another layer team to finish their bit or implement to the agreed interface correctly can greatly inhibit this.
I also prefer my team to be generalists who can easily move into different areas when needed. Got a new feature a? A "person" can work on hethe whole thing instead of waiting for 3 different people layers to all become available.
By all means have 1 DB expert keeping an eye on things there, and 1 UI expert monitoring that side of things, but having flexible multi talented people, working on feature silos rather than horizontal layers, for me, always works better.