Prostszym rozwiązaniem jest przechowywanie (buforowanie) operacji w aplikacji i przesyłanie ich wszystkich razem do MongoDB po uruchomieniu punktu końcowego zatwierdzenia.
Z technicznego punktu widzenia możesz ręcznie zarządzać cyklem życia transakcji w swojej aplikacji i wdrażać transakcje obejmujące żądania internetowe, ale to 1) będzie dość niezręczne i 2) utracisz obsługę różnych przejściowych błędów, które sterownik wykonuje dla Ciebie w withTransaction API.
Aby to zrobić:
- Zapoznaj się ze specyfikacją sesji
- Zapoznaj się ze specyfikacją transakcji
- Przeczytaj wygodna specyfikacja tx API abyś wiedział, czego nie będziesz dostaniesz za darmo, jeśli twój klient zapyta, dlaczego ujawniasz błędy, których nie robią kierowcy
- Sprawdź kod w sterowniku implementujący te specyfikacje
- Zaimplementuj zarządzanie sesjami i transakcjami w stopniu wystarczającym do Twoich wymagań w swojej aplikacji
Rozwidlenie i załatanie sterownika może być łatwiejsze, ale to oczywiście ma inne problemy wynikające z odbiegania bazy kodu od oficjalnej bazy kodu sterownika.