Cook the bacon in a skillet over medium-high heat until crispy. Set aside.
Remove some of the bacon grease from the pan leaving about 2 tablespoons and add the sliced onions and shallots and add the salt.
Cook over medium heat for about 30 to 40 minutes until they soften and start caramelizing. If the pan is getting dry, add small splashes of water to keep it moist.
While the onions cook combine the cream cheese, sour cream, mayonnaise, cheddar cheese, 4 ounces mozzarella cheese, Worcestershire sauce and stir together until you form a uniform paste. Reserve about 1 tablespoon of bacon for the topping and add the rest to cream cheese mixture.
When the onions are about to be done, add the minced garlic, thyme and balsamic vinegar.
Preheat oven to 350°F.
Cool down the caramelized onions for about 10 minutes before mixing it with the cream cheese paste.
Add the mixture to a baking dish, top with the 2 ounces of mozzarella and crispy bacon.
Bake at 350°F for 10 minutes. Sprinkle with the crispy onions and broil it on high for 2 to 3 minutes.
Serve with crackers and enjoy.