Hot broth goes over a bed of glass noodles, and the steam that comes off the bowl smells of shrimp shells, garlic and fried shallots. Bite into one of the small pale fish balls and it springs back. Strips of jicama crunch, and the dark wood ear mushrooms give a clean snap. This is tekwan, the fish-ball soup of Palembang in South Sumatra. The dough is the same fish and starch you meet in pempek, but here nothing is fried and nothing is dipped in a dark sweet-sour sauce. The balls are poached and served in a clear, light shrimp broth that tastes of the sea, with garlic and pepper underneath.
Fish From the Musi, Broth From the Shells
Palembang sits on the Musi River, and its cooks have a long habit of turning river fish into paste and binding it with starch. That dough can go two ways. Boil it, fry it and pour on cuko, the dark sweet-sour sauce, and you have pempek. Keep it unfried and serve it in shrimp broth, and you have tekwan. The balls are small, shaped from a spoonful, and they share the bowl with jicama (bengkuang), wood ear mushrooms, dried tuberose flowers and glass noodles. Fried shallots, celery and spring onion go on top, and bird's-eye chili sambal sits on the side so each person sets their own heat.
The work in the bowl is split. The fish goes into the balls. The broth gets its depth from the shells and heads of the shrimp, toasted and then simmered in water. Garlic, the peeled shrimp and a spoonful of dried shrimp are fried in oil and added to that stock. The result is clear and savory rather than heavy, and the toppings bring crunch and smell.
The usual account says Chinese settlers in Palembang sold dishes made from flour and fish, and local cooks added stock and local spices until it became tekwan as it is eaten now. From Palembang it spread to Jambi, Bengkulu and North Lampung, and Palembang cooking has made it common across Indonesia.
Where the name began is not settled. One theory reads it as a shortening of the Palembang phrase bekotek samo kawan, "chatting with friends." Another links it to the Hokkien tâi-oân (台丸), which sounds like the word for Taiwan. A third hears the English "take one" in it.
One dough, many fish dishes
Palembang's fish dishes go well beyond pempek. Pindang patin, celimpungan (fish paste cooked in coconut milk soup), model ikan and burgo are all part of the same family, and some styles of model ikan are also served unfried in soup. The fish changes as well. The recipe here uses tenggiri, a white-fleshed mackerel of the Spanish mackerel kind, while snakehead (ikan gabus) is also named as the fish for tekwan. There is even a dried form, tekwan kering, made with snakehead and rehydrated before eating. The name covers a range of fish and forms, so a cook working far from the Musi has room to choose.
Next to other Indonesian dishes, tekwan is a light dumpling soup. Bakso uses balls of beef or chicken in a beefy broth. Siomay is fish and tapioca, but steamed rather than served in soup. Papeda is the best-known sago dish, and the sago starch in tekwan's dough comes from the same palm.
Ingredients (serves 8)

This makes 8 small bowls, which suits a light meal or a starter. As a main course it feeds 4 to 6. To halve it, halve everything.
Everything that touches the fish should be cold. Mackerel flesh is soft, and once the paste warms up it slackens and the balls slump. Keep the fish in the refrigerator until you cut it, and keep the ice water on ice until the last spoonful goes in.
Tekwan contains fish, crustaceans (shrimp and dried shrimp), egg and wheat. Read the labels on the stock powder, dried shrimp and sambal for anything else they contain.
Equipment
- Food processor
- Large pot for poaching the fish balls
- Pot for the soup
- Deep frying pan for the shrimp shells
- Fine-mesh strainer and a heatproof bowl
- Slotted spoon
- Teaspoon for portioning the paste
Choosing and Substituting
The fish should be lean, white and very fresh. Spanish mackerel (sawara) fillet is the closest match: white, soft and mild. Red snapper and grouper also work, and frozen white-fish surimi saves you the processor work. Avoid oily fish. They bring a fishy smell that the clear broth cannot hide.
Sago starch gives the bite. Tapioca starch is the easy swap. It comes from cassava rather than the sago palm, but it makes the same kind of springy ball. Do not use potato starch, because balls made with it turn stiff as they cool. Leave the flour in too, because the dough loosens without it.
Jicama is bengkuang, added to the soup for its juicy crunch. If you cannot find it, use matchsticks of kohlrabi or daikon. Daikon brings a peppery note and more water, so the broth turns a little thinner.
Dried tuberose flowers come from Asian grocers. They add one layer of scent, and the soup is still complete without them, so leave them out on your first try. Dried day-lily buds (golden needles) are a different flower with a different smell, so they are not a substitute.
The rest comes from a Chinese or Southeast Asian grocer. Use dried wood ear, which you soak, because fresh is rarely sold. Use mung bean glass noodles. Rice vermicelli is thinner and changes how the noodles slip down. Chicken bouillon powder works as the stock powder. Salt levels vary by brand in both the powder and the dried shrimp, and that is the reason to salt the soup in two stages. Small dried sakura shrimp can stand in for ebi.
Method: A Cold Paste and a Clear Broth
The fish work comes first, while the fish and ice water are at their coldest: paste, dough, shaping, poaching. Before you start, put the wood ear and tuberose in separate bowls of water to soak, and soak the dried shrimp in hot water. Once the balls are poached, the stock and broth are straightforward. The shrimp stock simmers on its own while you clean up.
When It Goes Wrong
| What you see | Why | What to do |
|---|---|---|
| Balls are hard and dense | Too much starch, or the dough was worked after the starch went in | Slice hard balls thin and return them to the soup. Next time cut the sago to 3¼ oz (90 g) and stop mixing sooner |
| Balls fall apart | Dough too loose, or the water boiling too hard | Hold back the ice water 1 tbsp at a time. Turn off the heat while the balls go in |
| Broth is cloudy | Shells boiled hard, or the scum was left in | Simmer the shells gently, strain through a fine mesh and skim as you go |
| Broth is too salty | Full salt plus dried shrimp and stock powder | Dilute with more stock and add more glass noodles to soak up the salt |
| Harsh or fishy taste | Shells simmered too long, or the fish was not fresh | Stop the stock while it is still pale. Work the fish while it is cold and fresh |
| Aroma feels thin | Tuberose left out | Add an extra clove of garlic or more fried shallots |
Serving, Variations and Storage
Tekwan arrives at the table in deep bowls with spoons. The fried shallots and green herbs go on at the last moment, and the sambal stays on the side. Small bowls make a light lunch or a starter. Fuller bowls make a main.
Variations
- Shrimp-free broth: Use 6¼ cups (1.5 L) of chicken stock and leave out the dried shrimp, the peeled shrimp and the shells. This suits a household with a shellfish allergy, though the balls still contain fish. Check the stock powder label for shellfish. The aroma turns lighter.
- More mushrooms: Double the wood ear and add shimeji. The mushrooms give crunch in place of jicama and release less water than daikon.
- No noodles: Leave out the glass noodles and add more jicama for a lighter bowl. The broth tastes saltier without noodles to absorb it, so use less salt.
- Cold tekwan: Chill the broth and combine it with cold balls and vegetables as a starter for a hot day. Shrimp stock spoils easily, so eat it all the day it is made.
- Different garnish: Use mitsuba in place of celery, or crisp tempura bits (agedama) in place of fried shallots.
Storage and reheating
Store the balls and the broth separately. Kept together, the balls soak up the broth and swell. Cool both quickly in shallow containers, then refrigerate at 50°F (10°C) or below. Shrimp stock spoils easily and loses its aroma in the freezer, so refrigerate the broth rather than freezing it. To freeze balls, wrap each one in plastic wrap. Reheat to 167°F (75°C) or above, and bring the broth to a full boil. In a microwave, heat, stir once and heat again so it is hot all the way through.
Leftovers still contain fish, shrimp, egg and wheat. Label stored containers if anyone at home has these allergies.
Frequently asked questions
Can I make the paste without a food processor?
Yes. Mince the cold fish finely with a knife, then work in the salt, egg white and ice water in a chilled bowl until the paste turns sticky. It takes longer, so keep the bowl cold the whole time.
How do I make a half batch?
Halve every ingredient: 4½ oz (125 g) fish, 1¾ oz (50 g) sago starch and 3½ tbsp (50 ml) ice water, and the rest in the same proportion. Shape and poach the balls the same way.
Can I use potato starch instead of sago or tapioca?
It is a poor swap. Balls made with potato starch go stiff as they cool and lose the soft spring that tekwan should have. Tapioca starch is the one to buy.















