First of all, I know, that there is no such entity as Sprint 0 in Scrum. Also, I know, that architecture should not be nailed down during the first Sprint.
Well, all these principles work fine for us. We start from the prototype in the first Sprint, then gather feedback and in the second or third Sprint we understand the general customer's requirement well and the architecture becomes stable. But all projects were small (max duration is a little bigger then a year with 12 involved persons).
But what should I do with architecture in a large (enterprise level) projects, in which several teams are participating? I believe, that they can't start work together without preliminary coordination. For that coordination a basic architecture should be done first. And for a basic architecture we need to do general requirement gathering and a rough analysis of them.
So:
First of all, Scrum didn't provide any special events for these activities (like Sprint 0).
Second, the flow, that I described below looks like a waterfall, not agile.
What we shall do with a complex projects, which demands that we gather general requirements and create an architecture before its implementation? Are there any best practices for this? How do we solve this problem within Scrum?