10MPage is an internet history project which involves placing images onto a large grid.
The project requires that each image is approved before placement onto the grid.
Pending tiles need to be placed into the grid table that has an X and Y field.
The original approach was to loop through the grid to find an empty spot and place the pending tile there, however as the grid grew larger, it became slow.
The database table 'Placement blocks' was created to store available blocks, so that larger number of tiles could be handled at the same time.
Adding a pending tile larger than a single placement block is not supported, and the tile has to wait until the grid expands.
This implementation uses Laravel jobs with Laravel Horizon, where multiple workers are handling placements.
The scalability of this implementation is limited by the number of workers and available placement blocks.
The number of tiles that can be placed simultaneously can be increased by scaling up the workers.