In many reasonable sized projects, there are several tiers. Domain experts provide the requirements and high level design. Technical architects design the overall architecture, then the team leaders and the programmers who actually produce the code. It is actually unproductive for programmers attempt to dictate the architecture.
I have seen projects collapse into chaos because everybody was an expert at architecture and nobody truly cared about the domain. You really need to have solid structure to successfully complete large projects. It doesn't mean you can't make suggestions. But the decisions lie with those who are responsible for them. If they make the wrong call it is on them not you.
I sense that you are unhappy with your circumstances. Can you rise to the level of team leader or higher based on your experience? If not, then might be a good time to be a valuable contributor at the level you have been hired.