-
Notifications
You must be signed in to change notification settings - Fork 502
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Client lifecycle diagram #567
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It won’t disconnect until keep alive timeout.
Yes good point. I'll include some more details one that |
I thinking you should have another state which is just connected. Idle - pending - running - keep alive - closing - destroyed |
f1518ad
to
d1e5798
Compare
From what I can tell the Client never actually sits in a "connected" state. Once |
Codecov Report
@@ Coverage Diff @@
## master #567 +/- ##
=======================================
Coverage 99.16% 99.16%
=======================================
Files 16 16
Lines 1444 1444
=======================================
Hits 1432 1432
Misses 12 12 Continue to review full report at Codecov.
|
@ronag what do you think about this breakdown of the processing state? |
@Ethan-Arrowood maybe we could have a voice call? How does your day look today? |
Im free for the next couple hours! Send me an invite for whenever [edit: removed email] |
We had a call and discussed the life cycle and also other ways to make the code easier to understand. |
Updated the diagram based on our conversation @ronag - I'm working on the detailed state descriptions now so its better understood as well |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the processing
sub-diagram, you need a keep-alive state that goes back to the beginning or times out.
IMO this is what the |
I got confused by having both done and keep alive ending in the same dot. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
@nodejs/undici please review and merge at your earliest convenience |
e144f41
to
ee6f1c7
Compare
Just rebased and moved the file to the docsify site 😄 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still lgtm
Okay now i think this is good to go. I messed things up with docsify links in the initial site build. But this should clean up everything |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
* add init state machine paragraph and diagram * start extrapolating on processing state * modify state diagram with feedback * change svg to png for github dark mode * update link * adding details * wrap up state machine explanation * add missing period * add lifecycle docs to site * fix image link * fix more broken links * more broken links
* add init state machine paragraph and diagram * start extrapolating on processing state * modify state diagram with feedback * change svg to png for github dark mode * update link * adding details * wrap up state machine explanation * add missing period * add lifecycle docs to site * fix image link * fix more broken links * more broken links
Closes #532
Opening as a draft to start getting some feedback. I've read through the source code, tests, and existing documentation to come up with this. It may not be correct + I feel like I want to expand the "processing" state since there is a lot that happens inside of that.
I'd love to integrate parts of the API here too like specific methods calls, emitted events, and property values