Jak już zdajesz się wnioskować, sekwencje bez przerw po prostu nie skalują się. Albo istnieje ryzyko porzucenia wartości, gdy nastąpi wycofanie, albo masz punkt serializacji, który uniemożliwi skalowanie wieloużytkownikowego, współbieżnego systemu transakcyjnego. Nie możesz mieć obu.
Pomyślałabym, że co z akcją przetwarzania końcowego, w której każdego dnia masz proces, który działa pod koniec pracy, sprawdza luki i ponownie numeruje wszystko, co wymaga zmiany numeracji?
Ostatnia myśl:nie znam twoich wymagań, ale wiem, że powiedziałeś, że jest to „wymagane przez prawo”. Zadaj sobie pytanie, co robili ludzie, zanim pojawiły się komputery? Jak ten „wymóg” zostałby spełniony? Zakładając, że masz stos pustych formularzy, które mają wstępnie zadrukowany numer „kolejny” w prawym górnym rogu? A co się stanie, jeśli ktoś wyleje kawę na ten formularz? Jak to zostało potraktowane? Wygląda na to, że potrzebujesz podobnej metody, aby poradzić sobie z tym w swoim systemie.
Mam nadzieję, że to pomoże.