Place a sauté pan over medium heat. Add some olive oil, and then add diced onions and garlic. Sauté for about 3-4 minutes until translucent to develop sweetness. Be careful to not let them burn. Set aside to cool.
In a mixing bowl, add ground pork, cooked onions, other ingredients for the meatballs and plenty of freshly cracked black pepper. Mix thoroughly for 2-3 minutes until the mixture is well combined and sticky.
Use about a little over 1 1/2 tablespoons of filling to form each meatball. Place them into a heatproof plate. Place the plate in a steamer (or a large pan/pot), and steam until the meatballs are almost cooked through, about 5-6 minutes. Transfer the meatballs to a plate and reserve the meat juice released while steaming.
Place the sauté pan on medium - medium high heat. Add some olive oil, and then add shallot and garlic. Sauté for a few seconds until fragrant. Add diced tomatoes, stir and cook until the tomatoes start to soften and release juice.
Add meat juice plus additional water or chicken stock so that we add about 2/3 cup of additional liquid to the tomato sauce. Add tomato paste, fish sauce, soy sauce, black pepper, stir and bring to a simmer. Lower heat, cover and let the sauce simmer gently for a few minutes or until flavors meld together. Adjust seasonings to taste.
Add meatballs to the pan. Cover and continue to simmer for a couple of minutes, flip the meatballs once, until they are cooked through and lightly coated with the sauce.
Transfer the meatballs to serving plates/bowls. If you want to thicken the tomato sauce, mix together cornstarch and water to make the cornstarch slurry. Then slowly add cornstarch slurry while stirring the sauce to thicken it. Only add as much as you need to thicken the sauce to your liking.
Add the tomato sauce to the serving plates/bowls. Garnish with scallions and serve immediately with banh mi or baguettes.