Alpha Serve is a professional software development company. The team started their journey in 2003 as a development service provider and grew to an established top-rated B2B application developer. Now, their focus is to deliver high-quality, scalable, and performance-oriented enterprise-grade apps and Business Intelligence(BI) connectors for platforms such as Confluence, Jira, Shopify, ServiceNow, and Zendesk. Their products solve customers’ integration pain points while ensuring high-level data security.
With Alpha Serve’s BI connectors, companies can set up easy data exports from their professional software to BI tools with improved effectiveness and proven scalability and data security. The portfolio includes a range of Power BI Connectors, Tableau Connectors and other BI integration apps.
BI Connectors: Main Zendesk App Development Concerns
To truly understand the BI Connectors landscape, we must learn about integration app development challenges. These challenges are in the form of issues and bottlenecks witnessed during the BI connectors development process. So, what are these concerns? Let’s list them below.
- Nowadays, data is ubiquitous. Almost every aspect of infrastructure, interaction, and processing generates data. As a developer, it is crucial to allow applications to process more requests while having the flexibility to scale when needed. Moreover, all data handling must use fewer resources, considering BI connectors handle data exports while working with massive data amounts.
- Another challenge is to make apps highly responsive.
- And finally, BI connectors must offer scalability, especially for enterprises. Moreover, handling failures is critical, considering it can cost businesses a lot.
Alpha Serve team found these issues during our Jira apps development and tweaked our development approach to improve the new Zendesk Power BI Connector app performance. They also shifted to Spring WebFlux during Zendesk Connectors development to overcome these challenges.
How Alpha Serve Built Zendesk Connector with Spring Web Flux
Zendesk is one of the most popular and award-winning customer service platforms, with over 200K customers. Its centralized, omnidirectional, and scalable option makes it ideal for small, medium, and enterprise businesses.
Alpha Serve has chosen Spring Web Flux to overcome all the challenges and give businesses using Zendesk a top-notch Connector.
This section will look closely at how Alpha Serve built their Zendesk BI connectors with Spring Web Flux.
What is Reactive Programming, and What is Spring WebFlux?
Spring WebFlux is a Spring MVC module alternative. It enables developers to create non-blocking and fully asynchronous apps that take advantage of the event-loop execution model. Introduced in Spring 5, it solves the concurrency problem in web applications by introducing reactive programming.
Reactive programming, on the other hand, is a perfect fit for developing applications that need to stream data to clients. It solves the problem of handling tons of data using Reactive API.
In short, Spring WebFlux can handle many requests with minimal resource usage required for concurrent applications. It gives developers the necessary tool to develop scalable solutions while efficiently managing stream request live data.
Reactive programming is vital in providing the necessary solution to manage big data and concurrent solutions. Its strengths include the following:
- Ability to serve multiple requests
- Ability to handle latency operations more efficiently, such as data requests from remote servers
- Ability to provide a better quality of service
- Offer predictable scheduling with improved dealing with time and latency
- Can work with fewer resources
Spring WebFlux Use Case
In the end, Alpha Serve found Spring WebFlux essential during Zendesk apps development for their BI Zendesk Connectors.
With WebFlux supporting reactive programming, it is possible to build a complete reactive application. To summarize, they used reactive libraries to do the majority of the work while replacing:
- Spring WebFlux instead of Spring MVC for API development
- Spring Data reactive rather than Spring data – for database access
- WebClient instead of RestTemplate to ensure it works with Zendesk API
Let’s see how Classic Spring and Spring WebFlux handle data requests to get a complete picture.
In Classic Spring, you must go through the following steps when a client sends a data request from a table.
- One of the 200 available threads is allocated to handle the data request.
- The thread then starts to manage the data request.
- Then, the thread requests the data after learning about its type from Zendesk.
- The same thread waits for a response, which can take up to 10 seconds to complete.
- Once Zendesk sends the response, the same thread handles it.
- Finally, the data response is sent to the client, and the stream is released.
At least one thread is kept busy with allocated memory during the process. Unfortunately, this approach means waiting for a response from Zendesk before sending another request.
Now, let’s take a look at Spring WebFlux.
- A request handler is sent to the event loop. It queues for execution.
- Once the framework finds a free thread in the pool(the number of threads depends on the server’s physical threads/cores), it allocates a thread for processing.
- With the data type realized, a data request is sent to Zendesk.
- However, with WebFlux, it is not required to wait for a response as the response handler is thrown into the event pool, which releases the thread.
- It results in a quick response from Zendesk.
- Next, WebFlux again allocates a new thread for processing as soon as it becomes available. Once selected, the process is executed in the same thread with a response returned to the client.
- Lastly, the flow is released.
If you look closely, WebFlux releases the thread as soon as the event pool accepts the request. It results in faster concurrent request handling. The idea of concurrency is to free resources whenever applicable and allocate them to new tasks.
Spring WebFlux Benefits and Bottlenecks
Spring WebFlux is an impressive framework that brings the benefits of reactive programming. It improves app performance and load. However, there are still many bottlenecks that WebFlux brings. For example, it takes more time to develop. Also, the code is less readable and often makes it harder to test and debug.
Despite all the disadvantages, Alpha Serve prefers to develop both of their Zendesk Connectors with WebFlux because it results in better outcomes, especially user experience and value.
Using the approach, Alpha Seve has crafted two enterprise-ready Zendesk connectors:
- Power BI Connector for Zendesk: It lets users connect Zendesk with PowerBI and generate powerful Zendesk reports in minutes. Here, you can export complete Zendesk support data, including Tickets, Agents & Users, Ticket Metrics, Comments, Organization, as well as Zendesk Sell data. Some of its key features include:
- Export every Zendesk Support data to Power BI, including custom fields
- Requires no-code or technical skills to connect and use
- Customize data export with advanced filtering options
- Controlled Zendesk data security
- Tableau Connector for Zendesk: The Tableau Connector for Zendesk lets you seamlessly connect Tableau with Zendesk. With it, you can build Zendesk reports in a few minutes. Also, it is easy to connect and use. The enterprise-grade app can export any Zendesk Support and Sell data to Tableau, including Ticket metrics, Comments, Organizations, Orders, Deals etc. Its notable key features include:
- Easily export data, including custom fields.
- Controlled Zendesk data security that offers excellent data access
- Customizable data export with advanced filtering options
Technology is evolving at a rapid pace. However, with the primary focus on user experience, new technologies bring challenges during development.
Take Spring WebFlux, for example. It brings reactive programming to developers but is challenging to code or manage. Nevertheless, it solves the concurrency problem and enables developers to work with large datasets without allocating many resources to handle the requests.
In conclusion, despite its challenges, choosing a framework for a better outcome is worth considering because it benefits the end users.