0%
APPSPACE

SOFTWARE DEVELOPMENT FOR A LARGE B2B SYSTEM

Client

Appspace stands at the forefront of providing robust workplace management solutions. The enterprise offers a comprehensive platform that simplifies workplace operations, placing a key emphasis on communication, connectivity, and employee engagement. Their intranet hub is a highlight, functioning as an all-inclusive resource center for employees, who can also stay updated and connected through the Appspace app.

module development

Challenge

Appspace operated an existing legacy B2B software but sought a module capable of scheduling and instantly dispatching content to varied consumer categories. The content, as well as its distribution timing, needed to be accurately defined. Their technology stack comprised .Net Core, MongoDB, and RabbitMQ. However, the search for a more suitable language to cater to their needs led us to propose a custom Golang module. This module would serve as a reliable, scalable content delivery platform, ideal for systems enduring high traffic and load requests. The hurdle was to demonstrate its superiority in terms of scalability and performance, addressing both technical and non-technical stakeholders. For example, to tackle the complexity of integrations, such as syncing with smart lockers and third-party systems, we recommended Temporal's workflow automation platform, a system renowned for its reliability and scalability.

Strategy

Our approach began with a product discovery phase which encompassed an extensive analysis of functional and non-functional requirements, considering user content volume, rule complexity, and content size. We broke the system into smaller components to optimize performance and scalability while defining each communication prerequisite. Each module was designed using technology stacks relevant to specific needs. An integral part of our strategy involved crafting a robust data model featuring an efficient schema for storing and retrieving data, enhancing system performance through data indexing and query optimization. We also developed a versatile communication library, promoting fluid content delivery across platforms, including web clients, mobile devices, and multimedia screens. Our strategy also included the implementation of Temporal’s workflow automation to streamline complex client integrations and ensure seamless content distribution across various customer technologies.

 

software development project management
software development process
project management for software development
/ Appspace

Solutions

Leveraging Golang, we sought exceptional stability and high processing performance. We developed a standalone in-memory storage or hashtable to house standardized consumer data, allowing for efficient rule application. Another feature was a separate push notifications service in Golang, connected to the module via WebSockets and registered in its in-memory table. Through this, the module could identify the right consumers and deliver content using web sockets. We also suggested Kubernetes for efficient container orchestration, streamlining the deployment and management of system components.

stages of software development

Results

The implemented solution has proven to deliver outstanding performance and stability. On just approximately 1GB (1000MB) of RAM, it can handle around 17.5k connections, inclusive of 30 networks/tags/subject groups, and corresponding identity information. A single microservice equipped with 1 CPU and 1GB of RAM can process a remarkable 2500 filtering requests per second, even with complex filters and a significant number of criteria. Despite limited hardware specifications, the service optimally uses system resources, handling substantial workloads and providing seamless filtering capabilities. Our successful collaboration with the Appspace team continues to this day, constantly expanding their software capabilities.

custom module development

Review

4.5
Scheduling
On Time / Deadline
5.0
Quality
Service & Deliverables
5.0
Cost
Value / Within Estimates
5.0
NPS
Willing to Refer