The task was to develop a module to facilitate user management and user group organization in HelpDesk systems. It should have been able to provide automatic user registration, user invitation emission to business groups, email, and intragroup notifications.
- Module for processing and routing POST requests of different event types.
- REST based web services.
- E-mail notifications support.
SCAND development team decided to use Go Programming Language (Golang). The Go Programming Language or Golang is an open source programming language, which is a decent network technology with many frameworks that meet the required functionality.
With the help of standard tools (packages http, net, websocket, html, and xml) and within a reasonable period of time this distributed application with complex internal structure was developed. The application has the clear source code. Since Golang supports concurrent programming and HTTP load balancer, it was not difficult to implement the function of sending and processing a large number of requests by distributing the requests across available processing resources. Given the lower resources required for go routines (‘green threads’) over a system thread, using a dynamic stack and concurrent garbage collector, the application allocates minimum system resources.
- Automatic user account creation, e-mail notification release and the information concerning other available business groups.
- Opportunity to manage a user’s invitation requests bypassing moderator’s assistance.
- Capability to send messages to all members of the group.
- The module is reliable, stable and able to process a big number of users and concurrent queries.
- REST and/or SOAP communication protocols support
- Adequate speed and minimum memory consumption on processing numerous requests.
- Integration with Atlassian Jira Service Desk.
User registration and group management module developed with Golang.
J-GroupDesk module allows organizing user registration and managing user groups in HelpDesk system. It performs all the supposed features, is easy to use and set up. The module can be reused in order to create integration extensions for any popular REST API-based system or web services (Atlassian Jira Service Desk, Atlassian Confluence, Slack, etc.).