Ferrero WAF, The Need to Retest All Stories
April 14, 2025
Ferrero WAF, The Need to Retest All Stories
In the previous part, we discussed the challenges and experiences of building the "Let's Story" feature in the Applaydu application. However, with the introduction of Ferrero WAF (Web Application Firewall), a new requirement emerged: we needed to thoroughly retest all the stories.

This was no small feat, as we had to test over 40,000 stories, each available in 13 languages, and each language containing around 250 files. Moreover, we had to come up with a solution within 7 days before the live release.

Proposed Solutions: Script 1 + Script 2

To tackle this challenge, we proposed two approaches:

Script 1: Testing All Data in S3

The first script focused on testing all the data stored in Amazon S3. The advantage of this approach was its speed, as it allowed us to quickly validate the stories before the devops team updated the pipeline.

Script 2: Testing All APIs for Stories

The second script involved testing all the APIs required for the stories. This approach was slower compared to Script 1, as it relied on the end-user rate limit set by Ferrero WAF. We had to run the tests gradually until all the stories were covered.

Challenges with Ferrero WAF

During the testing process, we encountered a roadblock when we got blocked by Ferrero WAF. This was due to our initial lack of understanding of Ferrero's rate limit setup.

After discussing with the Ferrero team and analyzing their rate limit configuration, we gained a better understanding of how it worked. We realized that we needed to adjust our testing approach to comply with the rate limits in both the pre-live and live environments.

Cost Calculation for Cloudfront, Akamai, and AWS

One important aspect of this testing process was estimating the costs associated with using services like Cloudfront, Akamai, and AWS. We created a detailed spreadsheet to calculate the projected expenses based on the number of requests, data transfer, and storage requirements.

This cost analysis helped us make informed decisions about resource allocation and optimization, ensuring that we could efficiently test the stories while keeping the costs under control.

Setting Up Linux Machine and Code Processing

To streamline the testing process, we decided to set up a dedicated Linux machine. This machine served as the central hub for running the testing scripts and processing the code.

We carefully configured the Linux environment, installed the necessary dependencies, and optimized the system for performance. This setup allowed us to efficiently execute the testing scripts and handle the large volume of stories and files.

Conclusion

Retesting all the stories in the "Let's Story" feature after the introduction of Ferrero WAF was a significant challenge. However, by proposing two testing approaches (Script 1 and Script 2), understanding the rate limit setup, calculating the associated costs, and setting up a dedicated Linux machine, we were able to overcome the obstacles and ensure the quality and reliability of the stories.

This experience taught us valuable lessons about adaptability, collaboration, and the importance of thorough testing in the face of changing requirements. It also highlighted the need for effective communication with external teams, such as Ferrero, to align our efforts and find solutions together.

As we move forward, we will continue to apply these lessons learned and strive to deliver the best possible experience to our users through the "Let's Story" feature in the Applaydu application.

Stay tuned for more insights and stories from our development journey!

Discussion (0)

Loading...

Recommended articles

More articles ➜
New features of Next.js

New features of Next.js

Hey there! Ever heard of Next.js? It's a pretty cool tool for creating single page web apps (SPA) and static web apps (SSG). Built on React, Next.js is packed with handy features that can shave hours off your development time and make your pages load lightning fast. In this piece, we're gonna check out what's new and exciting in the latest version of Next.js. Stay tuned!

Frontend
Beiryu

Beiryu

Contributor

0
Exploring Communication Patterns in Microservices: A Closer Look at REST APIs

Exploring Communication Patterns in Microservices: A Closer Look at REST APIs

Microservices have become a popular architectural style for building large-scale and complex applications. One of the key aspects of microservices is how they communicate with each other. In this blog post, we'll explore different communication patterns used in microservices and take a closer look at REST APIs, which are widely used for inter-service communication. We'll also discuss the advantages and disadvantages of using REST APIs based on my experience in a current project.

Architecture
Backend
Beiryu

Beiryu

Contributor

0
Subscribe to the newsletter
Get emails from me about web development, tech, and early access to new articles.