It is hard to describe as it is a new way to build distributed applications that doesn't have a commonly agreed name yet.
Seems to be a fairly straightforward, minimal (which can be good; that's not a criticism) workflow engine.
public void execute(String customerId) { activities.sendWelcomeEmail(customerId); try { boolean trialPeriod = true; while (true) { Workflow.sleep(Duration.ofDays(30)); activities.chargeMonthlyFee(customerId); if (trialPeriod) { activities.sendEndOfTrialEmail(customerId); trialPeriod = false; } else { activities.sendMonthlyChargeEmail(customerId); } } } catch (CancellationException e) { activities.processSubscriptionCancellation(customerId); activities.sendSorryToSeeYouGoEmail(customerId); } }
Seems to be a fairly straightforward, minimal (which can be good; that's not a criticism) workflow engine.