Reading the MSDC design guide, it was indicated that OSPF is used for the routing and ECMP for supporting equal cost paths. Who does the actual routing, is it OSPF using ECMP or the other way arround? And how are they actually interacting? And it is indicated that the routing decision is made in the leaf node. Does that mean that the routing protocole is being executed only in the leaf nodes?
All that we mean by "ECMP" is literally "Equal Cost, Multi Path". The router installs two same-cost paths to a given next-hop, and they are used equally.
OSPF makes the routing decisions for the network based on its LSA database. If there are two paths that have the exact same cost from OSPF's perspective, it will consider them both "best". The router installs both equal-cost paths into the routing table, and the concept of "ECMP" occurs. Half of all flows will be sent one way, half go the other.
One of the benefits of EIGRP is that it supports unequal-cost multipathing via the "variance" command. OSPF, IS-IS, and all other IGP protocols I know of in the Cisco world only do equal-cost multipathing.