For several years, Germany has seemed like a strange anomaly in Western Europe on one of the key cultural issues of the modern era.
As country after country passed gay marriage in Europe and the Americas, Germany held out.
On the gay marriage map of Europe, a wave of dark blue came rushing in from the West. Starting with The Netherlands and Belgium in 2001, countries adopted full gay marriage.
The most surprising development came in 2015, when the Irish voted in a referendum to allow gay marriage - the first country to do so by public vote. Long known as a conservative country dominated by the Catholic church, it was a chance for the country to demonstrate just how much it has changed over the past three decades.
But meanwhile in central Europe, everything remained frozen.
The German-speaking countries - Germany, Austria and Switzerland - stuck with the civil union laws they had adopted in the early 2000s. Together they constituted a swathe of light blue in the middle of Europe along with Italy and Greece - two countries with which they do not normally have much in common.
As I've written before, civil unions now seem like a strange relic - a temporary attempt at a compromise before gay marriage became accepted in the West. Until now central Europe has still been stuck with this relic.
The discrepancy began to look increasingly bizarre, particularly given that these three countries are not fervently religious and are known as being very gay-friendly. Germany's capital, Berlin, is known as the gayest city in Europe.
A YouGov poll last year found that 66% of Germans are in favor of gay marriage. That compares to 48% in the UK and 53% in Portugal, two countries that had adopted gay marriage years earlier.
Germans have been aware how this looked, and have been embarrassed by it. They explained that it had more to do with the federal system (which also exists in Austria and Switzerland) than with an ideological opposition to gay marriage. It is harder to pass measures like this in a federal system like Germany or the US than in a centralised system like France or Britain.
Don't forget, it was a court order that granted same-sex marriage in America, not the passage of a law.
In fact, a majority of MPs in the German parliament have been prepared to vote in favor of gay marriage for several years.
The reason why it hasn't become law is that Merkel had until now refused to put it to a vote. And if a vote had been called, she would have required all MPs in her conservative bloc to vote against it - dooming its chances. All that changed on Tuesday when Merkel announced that she would allow a free vote on the issue, with each MP able to vote their conscience.
The chancellor's change of heart has little to do with her personal convictions, or a supposed lunch she had with a lesbian couple. It has everything to do with the upcoming German election in September.
Really, Merkel and her conservative Christian Democratic Union (CDU) party had no other choice. It is looking likely that the CDU will not get an absolute majority of votes, and will need to form another coalition after the 27 September election - something that is a near-constant necessity in German politics.
The Green Party and her former coalition partner the Free Democrats (Liberals) had announced that they would not join any governing coalition that did not promise marriage equality. The coup de grace came when Martin Schulz, the leader of the Social Democrats (SPD) who is challenging Merkel for the chancellorship, announced that his party would also not join any coalition without the promise of gay marriage.
Under almost any conceivable scenario, Merkel would have to allow gay marriage to pass if she retains the chancellorship this year. By calling the vote now, in the last week of the legislative term before campaigning begins, she removes this as a campaign issue. The risk was too great that Schulz would have been able to successfully use Merkel's refusal to allow a vote against her in the campaign.
There would have been no political benefit for Merkel to continue her opposition until after the election. Yes, she would have been able to keep her conservative party united. But given the circumstances, she is betting that her party members will understand that she had little choice.
Merkel herself voted no to gay marriage today, and she let her vote be publicly known. That will likely insulate her from heavy criticism from the German right within her own party.
In other words, today's development was not a result of a decision taken by Angela Merkel. It is the result of a decision taken by the the SPD.
But Merkel would be foolish to think she has halted the momentum of the SPD by calling this vote and removing it as a campaign issue. The other parties now feel emboldened by having been able to extract this concession from the chancellor. The wind is at their backs.
The bill was passed today by 393 votes to 226, which means that 70 of the 310 members of Merkel's conservative bloc voted in favor of gay marriage - 23%.
That is not a particularly high number, especially considering that it was the Conservatives in the UK that put gay marriage to a vote in 2015, and 117 out of 245 (48%) of them voted in favor.
The religious origins of the CDU, which sits in a bloc with its Bavarian sister party, the Christian Social Union (CSU), explain the antipathy toward gay marriage. It is particularly vehemently opposed in the Catholic south of Germany. Indeed, it was the CSU leaders who were the most vocal against today's outcome.
But the religious origins don't completely explain the resistance. Culturally, Germans are very cautious and conservative (with a lower case C) people. The political system does not favor bold action because the people don't favor bold action. Change in Germany is incremental, and an obsession with social order and "following the rules" means the country is rarely a leader on social issues.
It remains to be seen how this will affect the election. I suspect that it will remove it as a campaign issue, just as Merkel hoped. But given the overwhelming opposition to gay marriage within her bloc, particularly from the Bavarians, it is possible that internal CDU/CSU strife could result.
It is also possible that Schulz will still be able to make political hay of Merkel's hesitation and calculation, painting her decision to allow the vote at the last minute as a humiliating political climbdown - a leader running scared.
The problem is that Schulz is himself only a recent convert to the cause. He was against allowing gay marriage until very recently, saying civil unions were enough. So it will be hard for Schulz to paint himself as the principled defender of gay marriage and Merkel as the cynical politician. Indeed, it is Schulz's change of heart on this issue that has resulted in today's vote - not Merkel's. Schulz was the one who called for the vote this week after Merkel's comments.
Just take that in for a minute. In 2017 the leader of Germany's Socialist party was until recently still resisting gay marriage. Ruminate on that if you want a full picture of just how cautious and conservative German political culture is.