Skip to content

Instantly share code, notes, and snippets.

❤️
🦁 🐼

Merlijn Sebrechts galgalesh

❤️
🦁 🐼
Block or report user

Report or block galgalesh

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@galgalesh
galgalesh / departing-relations.md
Last active Feb 22, 2017
Clean Departure of relations
View departing-relations.md

Q: I have two applications that are connected to each other. When I remove the relationship, the order in which both applications terminate the relationship is very important. The client side needs to terminate the relationship before the server side, else, the client will try to connect to a nonexistent server and fail. How Can I do that?

A: This is where the <relation>-departed and <relation>-broken flags come in. The relation-departed flag will be set immediately after the removal of the relationship is requested. This flag should be used to trigger a termination from the client side. Only when every related unit has handled the relation-departed flag, the relation-broken flag will be called. This means that the server side of the relationship knows that every client has disconnected when the relation-broken flag is set.

Client side:

@when('server.relation-departed')
def handle_server_departed(server_relation):
    stop_client(server_relation)
You can’t perform that action at this time.