Thanks for the feedback. I have another question now.
The alpha currently starts the lambda servers in separate processes. The reason behind this is probably, that the alpha servers are running in a Node environment.
As my implementation runs within Go, we could integrate the lambda more closely within DGraph alpha.
What do you think about that? What risks could that impose?
Options:
-
Run lambda/wasm instances as goroutines within dgraph alpha.
Advantage: Highest performance gain I would guess. No HTTP/GRPC transmission needed. Direct embedding of wasm runtime within alpha.
Disadvantage: Might not be separated enough, although I think separation through WASM modules is enough. Potential security risks? -
Run lambda/wasm instances as goroutines within one external process.
Advantage: Separation of lambda and alpha - Less impact on malfunction and in terms of security risks.
Disadvantage: Minimal performance losses due to transmission. Process management. -
Run lambda/wasm instances as goroutines within multiple external processes.
This should not be necessary as go automatically uses multiple cores.
I hope I delivered the question understandably. I personally would think about integrating the lambda directly into alpha and run wasm instances within goroutines.
Thanks in advance.