Hoe bedien je klinieken, restaurants en salons vanuit één boekingssysteem?
Share

In this article
Modelleer een generieke boekingsentiteit en laat elke sector deze uitbreiden met een getypeerde payload: een patiëntendossier, een tafelbestelling of een servicekeuze. De boekings-, notificatie- en factureringsmotoren blijven sectoronafhankelijk, zodat alleen het uitbreidingsschema per sector verandert en de codebasis nooit wordt gesplitst.
Waarom niet per sector een aparte boekingsflow bouwen?
Klinieken boeken afspraken, restaurants nemen tafelbestellingen aan en salons verkopen service-uren, dus elk lijkt op een ander product. Splitsen per sector verdrievoudigt de boekings-, WhatsApp- en factureringscode en zorgt ervoor dat elke fix drie keer moet worden doorgevoerd. De gedeelde onderdelen zijn hetzelfde; alleen het kernobject verschilt.
Hoe ziet een generieke boekingsentiteit eruit?
Een basisboeking met de gedeelde velden (bedrijf, klant, tijdslot, status) plus een getypeerde payload per sector: een patiëntendossier voor klinieken, een tafel- en menubestelling voor restaurants, een servicekeuze voor salons. Motoren werken op de basis; sectorcode leest en schrijft alleen de eigen payload.
Hoe voorkom je dubbele boekingen van een tijdslot?
Geef elk tijdslot een versienummer. Als twee klanten binnen milliseconden boeken, krijgt de schrijfactie die verliest een conflict in plaats van een stille overschrijving en probeert opnieuw op de huidige staat van het tijdslot. Schrijfacties op tijdslots zijn kort en zelden betwist, dus optimistisch vergrendelen werkt beter dan een vergrendeling die de hele aanvraag vasthoudt.
Hoe voorkom je dat één vertraagd bedrijf de wekelijkse samenvatting van iedereen vertraagt?
Voer Google Business Profile-synchronisatie en samenvattingsgeneratie uit als taken in een RabbitMQ-queue met één verwerker per bedrijf, elk met eigen backoff. Een snelheidslimiet op één account vertraagt dan alleen de taak van dat account. Laatst gesynchroniseerde snapshots en per-bedrijf snelheidslimiet-tellers worden opgeslagen in Redis.
Oorspronkelijk gepubliceerd op sakshamjain.codes/blog/one-booking-engine-for-clinics-restaurants-salons. Wil je dit laten bouwen? Bekijk mijn diensten op NexoRush of stuur me een bericht.