Going to give a shot at porting a go project, which is a custom wrapper around an very old SOAP service that requires you to maintain a request āsessionā pool⦠each session is only valid for 15 minutes and must either have its expiry extended or properly destroyed and new one created. Request can only be made on a valid session and only one request is allowed per session.
In go I used a buffered channel, capacity of which is the number of sessions the client has contracted. Buffered channels in go can be gnarly, since if you do it wrong you can potentially block forever 
For rust Iāve not yet built anything like this so Iām excited and curious to see how implemting something like a worker pool turns out.