Diarkis Server Overview

This documentation aims to explain how to use Diarkis server APIs and their module interfaces to build our server applications.

The scope of this document includes how to set up HTTP, TCP, and UDP servers, their server configurations, Room module, Match Making module,  and internal server-to-server communication.

 

This documentation assumes that the reader understands the basics of Golang and its development environment. 

Also, the reader is assumed to have access to the development server with the builder server of Dairkis.

 

Primary Language Used

Diarkis server uses Go as its primary language. You do, however, have a way to use C/C++ language with Go’s C interface. (Go official documentation on the C interface here.)

Goroutines

Diarkis engine handles and manages goroutines internally. In most cases, your application logic does not require the use of goroutines. Functions provided by Diarkis engine with callbacks usually indicate that goroutines are used internally although this is not always the case.

 

Diarkis Server Cluster and Application Server(s)

In order to establish a connection to interact with the Diarkis server cluster, you must obtain a connection endpoint and other necessary data from it via HTTP API.

The diagram below describes the relations between the clients, Diarkis server cluster, and your application server(s).

Diarkis cluster consists of HTTP, UDP/RUDP and/or TCP and/or WebSocket.

  • HTTP          - Entry point for real-time connection with TCP, UDP/RUDP, and WebSocket.
  • TCP            - Real-time communication server for TCP network protocol.
  • UDP            - Real-time communication server for UDP/RUDP network protocol.
  • WebSocket - Real-time communication server for WebSocket network protocol. 


NOTE: HTTP client included in the client SDK is ONLY for test CLI.

How To Setup Diarkis With K8s For GCP, AWS, and Azure

Diarkis server cluster automatically sets itself up with the environment variable shown below:

GCP

DIARKIS_CLOUD_ENV=GCP

AWS

DIARKIS_CLOUD_ENV=AWS

Azure

DIARKIS_CLOUD_ENV=AZURE

Public Address

DIARKIS_CLOUD_ENV=<Public IP address or host name>

NOTE: If you set a hostname or public IP address instead, it will be set up as the hostname or IP address for the clients.

Documentations