The conflict of top star developers is almost inevitable if you have several top people with identical specialization in one team.
These guys are tech stars and they know just everything about the technology that is used. They are used to command the technical solution and others usually recognize their talents and follow their ideas. The problem is when these top guys meet in one team where they have to cooperate closely.
They have strong opinions about how the things should be done, but these ideas are totally different from the opinion of the other stars. The worst thing is they all are probably right. Since you are a manager and not the top star developer you are not able to recognize which solution is better from the technical point of view. Even if you are really experienced ex specialist, you haven´t spent hundreds of hours meditating about the issue. And you have to decide asap.
Fortunately, the technical solution is not the only parameter of the solution. You can and should have a look at the problem from the point of view of the user or maintainability or business or man-days to be spend and other criterions that technical specialists have no notion of.
However this is only fire-figting the situation and the best is to allocate the top stars on the project or at least on the parts of the project that are as far as possible from each other. From my experience you usually have one top star in 5-10 person team so it should not be so tough to give them unrelated tasks.
And then there are situations where two projects or two systems have to cooperate. Situation is worse when the teams are scattered across the country or continent and you need the architects of the solution to come to some conclusion. It happened in my project frequently and heated debates were regular with unhappy results.
The solution that worked particularly well for me was that I called the stars of the teams separately in advance of the conference call. I explained thoroughly the reasons behind the solution of the other side and admitted that their solution is also great and have considerable advantages too.
When the conference call started, I was biting my nails and hoped for a miracle that would liberate me from other emotionally tense meeting. I also needed the solution asap to get to work, nevertheless I still could not afford the teams to get even more hostile.
And then funny thing happened. One top star explained his proposal and said that his solution would be the best from the business point of view however that he understands that maintenance of the solution would be very difficult. Therefore, the cost of the advantage of his solution would be too high. Then the other top star said that his solution would be the best for maintenance, however that he understands our priority is business. Then they started arguing (again) that the solution of the other side is better than theirs and we should go for it.
When I got over the initial shock and collected myself I could conclude that both solutions have great advantages and I will choose one specific solution and will be responsible for decision. I didn´t have to persuade them because one side was happy that their solution was chosen and the other side was happy that the responsibility is not theirs. I see the benefit mainly in the fact that we had a solution, we had it quite quickly and both teams had a feeling that they won in some way.
I have used this solution several times afterwards and it worked pretty well every-time. It saves you a lot of time, nerves and particularly help to keep rivalry of the teams at low levels.