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. We've decided to use the Go Programming Language (Golang).
- Automatic user account creation, e-mail notification release and the information concerning other available buness 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.
The Go Programming Language or Golang is an open source programming language, which is very decent network programming language with a lot of frameworks that meet 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.
- Module for processing and routing POST requests of different event types.
- REST based web services.
- E-mail notifications support.
J-GroupDesk module allows to organize user registration and manage 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.).