Skip to content
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

Need task queues for go-fula #45

Closed
farhoud opened this issue Aug 2, 2022 · 4 comments
Closed

Need task queues for go-fula #45

farhoud opened this issue Aug 2, 2022 · 4 comments
Assignees

Comments

@farhoud
Copy link
Contributor

farhoud commented Aug 2, 2022

Problem

go-fula/mobile is based on a P2P network and targets mobile devices. so we end up with a very unstable network:

Solution

Add task queues and task status API to go-fula/mobile

@farhoud farhoud self-assigned this Aug 2, 2022
@mehdibalouchi
Copy link
Contributor

@farhoud thank you for this detailed description of the issue.
Right now every request/response on both of our protocols is happening statelessly. When you talk about task status (something like download/upload progress) aren't you mentioning that the connection between the blox and the client should be stateful? We can create a session on every request from the client and then handle these sessions with a task queue or a session manager. Of course we are able to manage a task queue without creating any session objects, but I think solving the problem using a session can help us with other features as well (e.g. ability to pause and resume downloads)

@farhoud
Copy link
Contributor Author

farhoud commented Aug 2, 2022

@mehdibalouchi I think we need both:
Task management will handle:

and Session needed to handle:

  • user wants the status of the download and upload progress. #prog
  • and also as you mention needed for pause and resume.

I think Session can be part of the protocol and Task Management can be part of API.

@mehdibalouchi
Copy link
Contributor

If I'm understating correctly, Task Management happens on the client side, and the Session management is handled by the Blox. If this is the case, then both the client and the blox should be aware of the sessions, therefore it has to be included in the protocol specification.
About Task management, since it is handled on the client side (it is basically a queue ensuring that a certain task will happen when the conditions are met), there is no need for Blox to be aware of it, so it should not be present in the protocol.
@farhoud is there anything about a 'Task' that the blox should know about it? if so, then we should consider adding it to the protocol specification.

@farhoud
Copy link
Contributor Author

farhoud commented Aug 2, 2022

@mehdibalouchi
Exactly Task is related to Application <--> API interactions and Blox does not need to know about them.

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

No branches or pull requests

3 participants