Preheat oven to 350 degrees. Grease medium sized cake or bundt pan. In an electric mixer, beat butter and sugar until whipped and creamy, 1-3 minutes. Add eggs, one at a time, incorporating after each addition. While keeping the mixer going at a low-medium speed, slowly add in sour cream, extract and zest.
In separate bowl, mix all dry ingredients together. With mixer on low, add to wet mixture in small batches. Do not overmix. Using a wooden spoon or spatula, fold in cranberries gently. Pour batter into cake pan, distributing evenly.To prepare topping, combine 5 ingredients in a small bowl. Using a fork, mix until the butter is fully incorporated. It should be chunky and stick together.
Using a fork or spoon, put topping onto cake and gently pat into dough with the back of the fork so that the topping cooks into the top of the cake slightly.Bake in oven for 50-60 minutes or until toothpick inserted comes out clean. Allow to cool at room temperature in pan for 15 minutes and then loosen edges with a knife, gently remove the cake and let finish cooling on a wire rack.
Before serving, sprinkle with confectioner’s sugar (optional). Store in airtight container for up to 3 days, or freeze in slices for later enjoyment.