Every "architectural decision" I've ever seen has been wrong. It's always resulted in a worse product than simply writing the code and allowing the architecture to happen.
(This doesn't mean writing code with no layering, just deferring those decisions to the point where you actually have the code that makes use of them)
(This doesn't mean writing code with no layering, just deferring those decisions to the point where you actually have the code that makes use of them)