In a large pot, heat the olive oil over medium heat. Add the diced onion and cook until translucent, about 5 minutes.
Stir in the minced garlic, diced carrots, and celery. Cook for an additional 5 minutes, or until vegetables are softened.
Pour in the low-sodium beef broth, then add the sauerkraut and chopped corned beef to the pot. Bring the mixture to a boil.
Once boiling, reduce the heat and let it simmer for 10 minutes to allow the flavors to meld.
Stir in the cream (or half-and-half), shredded Swiss cheese, Dijon mustard, and caraway seeds. Stir continuously until the cheese has melted and the soup is creamy.
Season with salt and pepper to taste. If the soup is too thick, you can add a little more broth or water until you reach your desired consistency.
Serve hot, garnished with chopped fresh parsley.
Notes
For a vegetarian version, substitute corned beef with mushrooms and use vegetable broth.