-
I understand what |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
Lock operations on entities involve two messages: one that is sent to the entity to lock it and one that is sent back to the sender to confirm that the lock was acquired. A lock can be held for an indefinite amount of time and also has to keep track of who owns the lock. Orchestrations are compatible with all these characteristics since they are long-running and have permanent identifiers. Client functions, on the other hand, are transient and not capable of waiting indefinitely for an ACK. They also don't have any kind of permanent identifier for the entity to use when deciding whether to allow a caller to perform operations. I suppose a non-orchestrator client could come up with an identifier and send it as part of the lock request, but I think there's still a problem of notifying a transient client when a lock has been successfully acquired. There's also the question of how you ensure that the lock gets released reliably. FYI @sebastianburckhardt in case I got anything wrong, or if there are other important explanations. |
Beta Was this translation helpful? Give feedback.
Lock operations on entities involve two messages: one that is sent to the entity to lock it and one that is sent back to the sender to confirm that the lock was acquired. A lock can be held for an indefinite amount of time and also has to keep track of who owns the lock. Orchestrations are compatible with all these characteristics since they are long-running and have permanent identifiers.
Client functions, on the other hand, are transient and not capable of waiting indefinitely for an ACK. They also don't have any kind of permanent identifier for the entity to use when deciding whether to allow a caller to perform operations. I suppose a non-orchestrator client could come up with an iden…