Krita Featured Page architecture
Open, Needs TriagePublic

Description

Hello everyone!

This phabricator task is about the architectural design of Krita's Featured page on its Welcome Page, not the UI design.

Given that we last discussed it briefly a few meetings ago, I thought this would be the right place for it.

Some Background

We are intending of adding a Featured page to Krita on which we list the featured artwork created by the community, something similar to: https://krita-artists.org/tag/featured. And the good thing is we can get the list of featured post from discourse in JSON without having any plugin to be installed in the machine running Krita-artists. But the issue is load can be a bit too much for krita-artists to handle. So, we'll certainly need a CDN for distribution.

Design

1. Server

I don't know much about CDNs (perhaps someone with more experience can help here), I did do some minor research though. On surface I'm thinking of running a service to download images and metadata from Krita-Artists after a constant interval and then serving those images.

Running a service to fetch images from krita-artists is simpler. But the question is how should we serve those images? The thing that quickly pops to mind is creating a REST service on top of a database. But is this something which can be used along with CDNs? Would serving a blob be something simpler or favorable?

2. Client

For our client, Krita. We query the server for the data after x amount of hours have passed since the last fetch and then cache the images.