Synchroon versus asynchroon beschrijft twee manieren waarop software omgaat met een taak waar het op wacht. Synchroon betekent dat het systeem vraagt en daarna stilstaat tot het antwoord er is voordat het verdergaat. Asynchroon betekent dat het vraagt, ondertussen andere dingen doet en het antwoord ophaalt zodra het klaar is. Het verschil zit in of al het andere moet wachten.
Stel je voor dat je koffie bestelt. De synchrone manier is aan de balie staan en niets doen tot je beker wordt aangereikt. De asynchrone manier is een buzzer krijgen, gaan zitten, je mail beantwoorden en pas opstaan als hij afgaat. Je kreeg dezelfde koffie, maar in de asynchrone versie stond je niet stil. Precies dat idee zit achter asynchrone verwerking: trage taken horen niet alles erachter te blokkeren.
In automatisering kom je dit constant tegen. Een synchrone stap houdt de hele workflow vast tot hij antwoordt, wat prima is als hij snel is. Een trage stap, 500 mails versturen of een rapport genereren, kun je beter asynchroon wegsturen, vaak via een message queue die het werk vasthoudt, of een webhook die het resultaat later terugbezorgt.
Maar asynchroon is niet gratis. Zodra een taak op de achtergrond draait, moet je je afvragen hoe je hoort dat hij klaar is, en wat er gebeurt als hij halverwege faalt zonder dat iemand kijkt. Synchroon houdt dat simpel: het antwoord komt direct terug, of het nou lukt of misgaat, in een adem. De vuistregel is dus om synchroon te blijven zolang een stap snel is en de aanroeper het resultaat echt nu nodig heeft, en pas asynchroon te kiezen als het wachten anders echt werk zou ophouden.
Bij TopDevs kiezen we per stap voor synchroon of asynchroon op basis van hoe traag hij is, zodat één zware taak nooit het hele proces van een klant bevriest.