You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The design for the engine services specifies that our enso engine server is separated into two parts: the gateway and the language server. The gateway component is responsible for accepting incoming connections and managing the details of talking the language server protocol. The language server component wraps the runtime itself, and uses the APIs provided by the interpreter and the compiler to service the requests sent to the Enso Engine.
These services communicate using akka, and so the first port of call is to set them up as two akka services.
Value
We have a stub architecture for the services portion of the introspection and tooling work.
Specification
Implement a stub for the gateway akka service. This should be located in this repo in the engine/gateway folder, and should be added to build.sbt under the name gateway.
Rename the existing engine/language-server folder to engine/runner and update build.sbt appropriately.
Implement a stub for the language server akka service. This should be located in this repo in the engine/language-server folder, and should be added to build.sbt under the name language_server.
Make engine/runner depend on language-server and gateway.
Create an entry point in the engine/runner codebase called --lsp.
Make it so the above option spawns the gateway service and the language-server service, and continues running until the runner process is stopped. When the runner process is stopped, it should tear down the akka services properly.
Add tests for this very basic functionality.
Please note that it is very important to maintain the conceptual boundary between the gateway and language server services properly. Ensuring that we do this will mean that we can run the gateway service in a separate process in future should we need to.
Acceptance Criteria & Test Cases
The above tasks are complete.
The boundary between the akka services is well-defined.
The text was updated successfully, but these errors were encountered:
Summary
The design for the engine services specifies that our enso engine server is separated into two parts: the gateway and the language server. The gateway component is responsible for accepting incoming connections and managing the details of talking the language server protocol. The language server component wraps the runtime itself, and uses the APIs provided by the interpreter and the compiler to service the requests sent to the Enso Engine.
These services communicate using akka, and so the first port of call is to set them up as two akka services.
Value
We have a stub architecture for the services portion of the introspection and tooling work.
Specification
engine/gateway
folder, and should be added tobuild.sbt
under the namegateway
.engine/language-server
folder toengine/runner
and updatebuild.sbt
appropriately.engine/language-server
folder, and should be added tobuild.sbt
under the namelanguage_server
.engine/runner
depend onlanguage-server
andgateway
.engine/runner
codebase called--lsp
.gateway
service and thelanguage-server
service, and continues running until the runner process is stopped. When the runner process is stopped, it should tear down the akka services properly.Please note that it is very important to maintain the conceptual boundary between the gateway and language server services properly. Ensuring that we do this will mean that we can run the gateway service in a separate process in future should we need to.
Acceptance Criteria & Test Cases
The text was updated successfully, but these errors were encountered: