1. Mix all meatball ingredients together, being careful not to overmix. Set aside.
2. In a large pot over medium heat, heat oil and sauté onions and garlic until transparent.
3. Place pitted dates in a two-cup measuring cup. Pour boiling water to cover the dates, and let sit for 10 minutes.
4. Put the dates and one cup of the date-soaking water into the bowl of a food processor, reserving the remaining water. Blend until it becomes a paste or thick liquid. Add the date paste and extra water from soaking the dates to the sautéed onions. Add tomato sauce and spices. If the sauce is too thick, add a bit of water.
5. When the sauce is hot, form gumball-sized meatballs and drop them into the sauce. Stir the sauce after every few meatballs. Add shredded cabbage, if using. Lower heat and simmer, covered, for two hours.