In software engineering and software architecture design, architectural decisions are design decisions that address architecturally significant requirements; they are perceived as hard to make and/or costly to change. https://en.wikipedia.org/wiki/Architectural_decision
https://www.openshift.com/promotions/for-developers.html https://www.openshift.com/promotions/devops-with-openshift.html https://developers.redhat.com/promotions/microservices-for-java-developers/ https://developers.redhat.com/promotions/distributed-javaee-architecture/ https://www.openshift.com/promotions/docker-security.html https://content.pivotal.io/ebooks/migrating-to-cloud-native-application-architectures https://content.pivotal.io/ebooks/beyond-the-12-factor-app
How much to use of Cloud Native?
API first? Mobile first? Priority comes to what?
Use the best programming language per compoent? Same language across the application?
Compliance like PCI from the beginning or phase in?
Test Driven Development?
All code on commit does a CI/CD and runs all the tests?
Fast Monolith vs. Microservices from the start? https://developers.redhat.com/blog/2016/10/27/the-fast-moving-monolith-how-we-sped-up-delivery-from-every-three-months-to-every-week/
Single or cluster wide solution for components like CI/CD, logging and monitoring.
Secure by default