45 ml (3 tbsp.) peanut oil
80 ml (1/3 cup) carrots, cut into thin slices
80 ml (1/3 cup) celery, sliced diagonally
80 ml (1/3 cup) shiitake mushrooms, cut into 1 cm (3/8 in.) dice
15 ml (1 tbsp.) fresh ginger, chopped
1 garlic clove, minced
2 L (8 cups) chicken broth
20 ml (4 tsp.) fish sauce
500 ml (2 cups) napa cabbage, thinly sliced
500 ml (2 cups) bean sprouts
80 ml (1/3 cup) snow peas, cut into 2 to 3 cm (1 in.) dice
125 ml (1/2 cup) green onion, thinly sliced
80 ml (1/3 cup) water chestnuts, slivered
45 ml (3 tbsp.) soy sauce
30 ml (2 tbsp.) rice vinegar
15 ml (1 tbsp.) sesame oil
30 ml (2 tbsp.) honey
2 ml (1/2 tsp.) sambal oelek
2 garlic cloves, minced
375 (1 1/2 cups) extra firm tofu, cut into 2 cm (3/4 in.) dice
In a bowl, mix together all the marinade ingredients except the tofu. Stir well.
Add the tofu and coat it well. Cover and refrigerate for about 1 hour, stirring 3 times.
In a saucepan, heat 15 ml (1 tbsp.) of peanut oil over medium-high heat. Add the carrots, celery and mushrooms. Cook for 1 to 2 minutes, stirring frequently. Add the ginger and garlic. Cook for 1 minute, stirring constantly.
Add the chicken broth and fish sauce. Add the remaining ingredients and simmer for about 15 minutes.
In a skillet, heat the remaining peanut oil over medium-high heat.
Drain the diced tofu. Fry until nicely browned and crispy.
Divide the tofu between serving bowls, and top with the soup.
Place soy sauce, fresh coriander and lime wedges on the table so your guests can season their soup to their taste. Serve hot.