libp2p / libp2p/go-libp2p-daemon
Concurrency models to support with native language bindings
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 95
- Forks
- 41
- PR merge metrics
- No merged PRs in 30d
Description
Opening this issue to continue the discussion we started regarding what concurrency models that should be supported when targeting language level bindings.
### Asynchronous Model
Concurrency handled on the Go client side. Async calls from Java/Python/C etc that require a response are tracked with an id. There are two ways we could handle this:
1) Java/Python/C could poll the Go client until the matching response id is returned
2) Java/Python/C could provide a function pointer and the Go client could issue a callback when the response is ready.
> I prefer option 2 here
### Synchronous Model
There might be cases where we want to provide a synchronous mode of interaction. This might be useful for simulations where we want things to happen during each timestep for the purpose of research and reporting the health of the network given different simulated pathological scenarios.
> Just a thought. I am curious what you guys think
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or concrete entry points; begin by locating the Go daemon's existing native-language binding API and request/response handling. The concurrency model still needs agreement on polling versus callbacks and whether synchronous operation is required, after which the agreed behavior can be implemented and tested.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, go, java, python
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100