Break complex systems into manageable, independent parts.
Use HTTP and REST for services (no ESB).
Don't worry too much about reuse. It's a double-edged sword.
Standard media types, ones that can be consumed both by machines and peoples are great for testing.
Conway's Law: arrange your teams to reflect your system's topology.
Each team can use the best tech is best suited to their system.
Not for the first time I've heard someone say, use lightweight embedded HTTP server rather than a heavy weight container.
Free, full length book on Selenium WebDriver
Free, Selenium 3.0 compatible, and at over 420 pages this book is a hands-on guide to dozens of specific ways you can use to get the most of WebDriver in your test automation development.
This book will help you learn the fundamentals of the WebDriver API such as locating and interacting with web pages, through advanced topics such as Page Objects and mobile testing, and finally teach you how to build up your own web application testing framework.