Na początek obierz wszystkie cebule i pokrój je w cienkie piórka. Białą i czerwoną cebulę warto połączyć, bo dzięki temu sos będzie miał pełniejszy smak i ładniejszy kolor. Czosnek obierz i przeciśnij przez praskę lub bardzo drobno posiekaj. Natkę pietruszki drobno posiekaj.
W dużym garnku zagotuj wodę z dodatkiem soli. Wrzuć spaghetti i gotuj według czasu podanego na opakowaniu, najlepiej al dente. Dzięki temu makaron po połączeniu z gorącym sosem zachowa odpowiednią sprężystość. Przed odcedzeniem możesz zachować 2–3 łyżki wody z gotowania, jeśli sos trzeba będzie później lekko rozrzedzić.
Na dużej patelni rozgrzej olej lub oliwę i dodaj pokrojoną cebulę. Smaż ją na średnim ogniu przez około 10–12 minut, często mieszając, aż zmięknie, lekko się zeszkli i zacznie nabierać delikatnie złotego koloru. Nie warto przyspieszać tego etapu zbyt mocnym ogniem, bo cebula zamiast się zesłodzić, może się przypalić. Gdy będzie już miękka, dodaj czosnek i smaż jeszcze przez około 30 sekund, tylko do uwolnienia aromatu.
Następnie wlej śmietanę 30% i dodaj sos sojowy. Całość dokładnie wymieszaj i duś na małym ogniu przez 3–5 minut, aż sos lekko zgęstnieje. Na tym etapie dopraw go tymiankiem, pieprzem i w razie potrzeby niewielką ilością soli. Sól najlepiej dodawać ostrożnie, ponieważ sos sojowy jest już wyraźny w smaku. Pod koniec wsyp posiekaną natkę pietruszki i jeszcze raz wymieszaj.
Do gotowego sosu przełóż odcedzone spaghetti i dodaj mniej więcej połowę mozzarelli. Wszystko dokładnie wymieszaj, aby makaron dobrze pokrył się kremowym sosem, a ser zaczął delikatnie się rozpuszczać. Jeśli całość wyda się zbyt gęsta, dolej odrobinę wody z gotowania makaronu i ponownie wymieszaj. Gotowe spaghetti w sosie cebulowym przełóż na talerze i od razu posyp pozostałą mozzarellą. Najlepiej podawać od razu, kiedy ser jest jeszcze miękki, a sos aksamitny.