Remote integrations in GoLang
Javonet allows you to reference and use modules or packages written in (Java/Kotlin/Groovy/Clojure, C#/VB.NET, Ruby, Perl, Python, JavaScript/TypeScript) like they were created in your technology. If have not yet created your first project check Javonet overview and quick start guides for your technology.
You can easily decide if you want to load your ruby-package either in the same operating system process for tightly coupling integration scenarios and use foreign modules like they were created within the same technology or delegate creating required foreign objects in to any remote node, container or service. Javonet SDK provides you two methods to initialize foreign runtimes either in the same process with inMemory() or remote using tcp() method.
// use Activate only once in your app
_, err := Javonet.Activate("your-license-key")
if err != nil {
fmt.Println("Error: " + err.Error())
}
connectionData := connectiondata.NewTcpConnectionData("127.0.0.1", 8080)
communicationChannel := Javonet.Tcp(*connectionData)
// use communicationChannel to create runtimes to interact with
Communication channel can be configured also with configuration file. Read more in Configure Channel.
If you want to host your foreign module on remote node you need to run Javonet Code Gateway that will expose any public objects and methods defined in those modules for the consumption from your remote client code.
After selecting channel user selects a runtime to interact with in order to create Runtime Context
Was this article helpful?