That does not sound like a scalable architecture!

The number of simultaneous user connections the architecture can support is 
limited to the number of processes 
your server can run. The resources required by a process are orders of 
magnitude more than those required for a goroutine.
And the Go runtime adds to that.

Three options:
1) rewrite third party app in Go to run in a single process with a 
goroutine per connection
2) don't use Go for your extension
3) Write a stub extension in C which talks over gRPC to a single Go server 
instance


On Friday, 28 February 2020 15:39:21 UTC, Luke Mauldin wrote:
>
> The multiple instances are required to due to way the 3rd party 
> application works. In brief, it creates a new process for each user 
> connection and then each new process dynamically load the Go shared library 
> to provide C extension points.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/4e77316c-5d5f-44d4-968a-ae311ee685d8%40googlegroups.com.

Reply via email to