In the last 10 years, there are lots of libraries heavily relying on annotation to drive it's usage in your app. Examples ranges from Spring Boot, JAX-RS, JPA (Hibernate), etc. In this discussion we would the explore the downside this approach has, solutions to overcome, and the upsides.