zlacker

[parent] [thread] 1 comments
1. stavro+(OP)[view] [source] 2023-05-13 09:01:20
Thank you! It doesn't sound like an exact fit but Windmill looks great in general, well done!

For the second point, the idea is that we don't want to rely on webhooks at all, except as evaluation triggers. The rules are built in to each state, so even if we've missed a webhook/event, the customer can still proceed.

For an example, one of our flows requires the user to have filled out a consent form in the last three months. As I understand it, with your design, we need to send a webhook when a user has given consent, and then we can proceed to the next state, so we'd have to somehow check for previous consent in some different state? With our design, when the user reaches the state, the rules will be evaluated, and "has given consent within the last three months" will be true, and the user will proceed to the next state without ever seeing the consent form.

For the synchronous bit, it kind of follows from the above feature, and it is so we evaluate state transitions while the user is waiting. We run the workflow synchronously, in the request (since no workflow needs external events to continue), and return the new state to the user.

Since this is synchronous, it avoids races or long waits for events to be delivered.

Thanks for listening, maybe you'll find some of the above helpful in your design!

replies(1): >>rubenf+E
2. rubenf+E[view] [source] 2023-05-13 09:14:19
>>stavro+(OP)
Makes sense. I understand the synchronous part now. I think there are ways to achieve the same benefits with an asynchronous system but if what you have works, no point changing it!
[go to top]