Konstantin Narkhov
Pheix 0.8.109
@condemnedcell
konstantinnarkhov.pro

Pheix public β-release suggestions

23, november 2020


Overview

As the private β-release has shown, Pheix at current implementation has generic render time problem. If we're rendering content on server-side with Template::Mustache we're wasting ~ 3 seconds. Basic improvements:

  • FastCGI;
  • Careful object management — now we have the single template with variables (title, content, etc), well if we render common variables at first start and then use own reactive render at runtime we will got more speed; also we need to create all static objects (such as Pheix::Utils) at first start;
  • Client-side content rendering — use Riot JavaScript components library for rendering content with JS on client, it's based on REST API and in future will lead Pheix to true headless CMS.

What's functionality will be at β-release

  • FastCGI;
  • Improved object management (global objects, run-time objects, nested pools);
  • Headless backend: get content via REST API;
  • Separate compression layer Pheix::Model::Database::Compression (details, w/o Compress::Bzip2 integration);
  • Embedded ultra fast content tags render based on Raku grammars;
  • Fast clientside content templating with [Riot JavaScript components library] and REST API;
  • Fully functional Presentation Layer on new backend engine;
  • Addons itegration with embedded routing;
  • Pheix::Addons::Weblog with basic functionality — #108.

Breaking changes

  • Due to FastCGI: no prints anymore, we're living in FastCGI paradigm;
  • Due to clientside templating: another template variable format, no content render at backend;
  • Due to headless backend: content is delivered via REST API (Ajax) from backend JSON API gateway;
  • New addons installation paradigm, so no logical compatibility with P5 Pheix — addons are independent Raku modules, they could be installed via zef;
  • The CMS configuration (what addons are used) should be stored at config.json.

Dates

There are a lot of principal changes, so the dates could vary at all. Nevertheless, we're starting with breakpoint at 30 December 2020.


Perspectives & further steps

Use Riot JavaScript components library for rendering content with JS on client, it's based on REST API and in future will lead Pheix to true headless CMS.

In this case we would implement a pool of administration layer REST APIs and connect P5 Pheix. This will be the great tandem: Raku on backplane and Perl5 as frontline agent.

This can be considered within Release Candidate 1 roadmap.


β-release issues trace


Credits

Gitlab workspace.

Blog entries

Check out latest blog entries: most interesting stories about past events & activities.

Quick feedback

Letters and spaces only