Siku

An innovative ad platform that automates distribution at scale. Its intuitive structure delivers responsiveness and ease of management.

Development with Laravel

Check it out

Siku is an innovative ad distribution platform that I recently developed to automate the delivery of online ads. The goal of this project was to streamline an otherwise manual and tedious process while still maintaining high performance and accountability.

Some of the key capabilities delivered through Siku include:

  • Automated ad distribution that allows advertisers to reach wider audiences faster
  • Performance monitoring to validate each ad impression
  • Ad tracing through assigned codes for every ad delivered
  • Scalability to send millions of ads per day without slow down or loss

The Challenges

Building an automated platform like Siku introduced some unique challenges that I had to solve.

Preventing Ad Loss at Scale

The first major hurdle was figuring out how to distribute a high volume of ads without risking the loss of any ad deliveries. With parallel processing across multiple servers, keeping track of each ad impression becomes highly complex.

I overcame this by building a robust queue architecture with Redis that ensures every ad gets processed across any number of nodes without possibility of duplicates or losses. Careful code optimisation and load testing was also needed to sustain high throughput.

Efficient Deployment Architecture

The second challenge was around deployment and making sure the platform could efficiently scale out. This involved some key technologies:

  • Laravel queues and workers to parallelise ad delivery jobs
  • Websockets with Laravel Echo and NodeJS for real-time monitoring
  • Automated provisioning of new servers with Ansible as traffic grows

Together this creates a modular architecture that can handle millions of ad deliveries per day across any number of servers.

Key Technology Choices

I carefully selected frameworks and libraries best suited for Siku's needs:

Back-end

  • Laravel - High performance PHP framework optimised for web scaling
  • NodeJS - Enables real-time websocket communication

Front-end

  • ReactJS - Fast rendering of monitoring dashboards
  • Webpack - Module bundling optimises frontend build process

Data & Delivery

  • MariaDB - Robust, scalable SQL database
  • Redis - In-memory data store powers the ad queue

Infrastructure

  • Ansible - Automates the provisioning and deployment of new servers

This combination of technologies was selected specifically to meet the performance, accountability and scalability demands of an automated ad delivery pipeline.

Mobile App Development

I explored two options when it came to developing the mobile app for Siku:

Ionic - A mobile SDK I have often used in the past and am most familiar with. However, it was lacking some components needed for Siku.

Flutter - Google's modern mobile SDK that proved to have all the required features. And although new to me, I saw it as a good chance uptskill.

After carefully prototyping with both, I settled on Flutter as the best mobile platform for Siku. And have been happy with the native-like performance so far.

Conclusion

Siku came with some interesting technical problems around scale, performance and accountability that I thoroughly enjoyed solving.