UPDATE: They canceled deployment of change for 7.3.5 and pushing it to a later patch. Leaving original article because the whole thing still holds true. I also update parts of article with newest info, so if parts of it read funny I might have messed up in doing so.
In patch 7.3.5 ??? they are changing way spell names are returned by API. Instead of returning them in same frame they are requested in, they return spell info without spell name in first frame, and queue spell name request to be returned in a later frame via SPELL_NAME_UPDATE. This causes significant breakage to mods without tons of code changes to work around it.
The reasoning for this change as explained to me is to improve client performance and reduce hitching caused by loading spell info in certain places such as achievement frame. Overall it should be a net gain in performance for base UI and even addons that call GetSpellInfo repeatedly. It allows blizzard to return the spell info right away and spell name in next frame to reduce hitching in client caused by the old spell API.
Here is where things get iffy. This change did not consider several cases for addon authors where such a system simply doesn't work well. One major example is LoadAddon. In many cases an addon author only ever requests a spellName for something once, OnLoad. Often times in these cases there is no onevent or onupdate handler to fix spell name after the fact. The mod loads, pulls spell info and calls it a day. This is no longer possible in 7.3.5 ??? what so ever. This requires addon authors to literally write functions to fix things after loading. Fortunately blizzard acknowledged this would be an issue and is one of reasons they canceled deployment of feature in 7.3.5 until they can give us a solution to deal with this.
Addon authors gave blizzard a lot pushback because the coding we would have had to do to fix this is not always simple and can border on stupid and may cost users the performance blizzard saved them and then some. Basically, one step forward two steps back with this change. Addon authors see why an async system is beneficial, but we simply wanted a solution to be used that isn't async for niche cases where it works in all addon type cases that makes sense and isn't ugly or performance hit to users or horrible to write hack.
On DBM for example, I've already corrected Announce and timer objects to work just fine with async spell names in an efficient manor that is 7.3.5 ??? friendly. These are fu [...]