Skip to content

Conversation

@skiplabsdaniel
Copy link
Contributor

No description provided.

@skiplabsdaniel skiplabsdaniel force-pushed the resource-status branch 2 times, most recently from 699eef0 to d0945cc Compare October 23, 2024 12:45
Copy link
Contributor

@bennostein bennostein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First batch of comments. Mostly little things, but a handful of questions/comments that could use responses.

I don't see any tests about the main bit of behaviour that I thought this was designed to address: the initial GET request always returning an empty collection when it depends on something external. Can you explain what observable changes this PR makes from the user's perspective? What guidance should we give on how to use this / handle loading of external resources?

I'll follow up with a commit to clean up the doc comments' English, but appreciate all of those!

Copy link
Contributor Author

@skiplabsdaniel skiplabsdaniel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The general principle is to add a collection of statuses to each resource, with each external service involved in the resource adding its status to this table, along with “creation” and “modification” times.
When a request is made, a “request” (for want of a better word) is created to mark that a request is being made at that time.
The various statuses are aggregated relative to the time of this request (all this to avoid unfortunate time sequences that could lead to infinite waiting).
A request can be made with a “Checker” (too, for want of a better word).
If a “Checker” is provided, if will be called at status change for the requester to check and do what is necessary.
If there is no “Checker” provided and there is a dependency being loaded a “request” identifier is returned to allow subsequent status request relative to that request.
This is the general case for having a notion of status for the resource throughout its life in the service.
There are still some unanswered questions:

  • What does this mean for a Skip service chain (status propagation, error handling, etc.)?

@skiplabsdaniel skiplabsdaniel force-pushed the resource-status branch 2 times, most recently from 1446b2f to 4c0f1f1 Compare October 25, 2024 14:17
@bennostein bennostein merged commit 598b811 into SkipLabs:main Oct 28, 2024
4 checks passed
@skiplabsdaniel skiplabsdaniel deleted the resource-status branch November 4, 2024 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants