Guillotina Training on Day 1 of Plone Conference 2017

The Guillotina training at the Plone Conference 2017 by N. V. Gheem and R. N. Bosch was very inspiring to be scalable RESTFUL servers.
Guillotina Training on Day 1 of Plone Conference 2017

After all the trouble of getting to Barcelona for the Plone Conference 2017, I had to jump another rope, that is, getting to the conference. Prior to my arrival, I downloaded the map of Barcelona via Google Maps and the Spanish vocabulary on Google Translates, which became quite useful in finding the Polytechnic University of Catalonia and asking the locals for directions.

Plone Conference is usually a 5 days session, that is, two days of training and three days of talks. Plone Conference 2017 was not different from the norm. The first day of training had 5 concurrent training sessions.

With too many options, too many places to be and too many things to learn, I had to choose the one I least likely to know and most likely use. For me, this was Guillotina. I've hardly worked with a dedicated RESTFUL server and this was the chance to make a new start. Guillotina is said to be a high-performance AsyncIO REST Resource Application Server running on python 3.6 and greater. It is designed for horizontally scaling solutions and intuitive REST JSON API with built-in authentication/authorization and JWT support. Many of its technologies are learned from Plone, Pyramid, Django, and others all while utilizing Python’s great AsyncIO library. By using Python’s AsyncIO, it works well with micro-service oriented environments


  • Built-in authentication/authorization, built-in JWT support
  • Hierarchical data/URL structure
  • Permissions/roles/groups
  • Fully customizable permission/roles/groups based on hierarchical data structure
  • Robust customizable component architecture and configuration syntax
  • Content types, dynamic behaviors
  • Built-in CORS support

Requirements and Setup

Following the training guide for Guillotina, it requires the following application to be installed to work effectively:

  • Python 3.6 or greater
  • Virtualenv for python 3.6 or greater
  • PostgreSQL 9.6 or greater

During the training, I tried using python 3.5, it didn't work due to dependency issues. Therefore, I urge you to follow the guide and install python 3.6 and other dependencies for Guillotina or download and execute the installation script on Github Gist that I've made after learning more about Guillotina.

Getting Started

Once guillotina has been installed, you can execute the following code to start the guillotina server:


Guillotina comes with predefined settings to make it easier to start without having to do any form of configuration. However, the most likely case is that you're going to want to configure your Guillotina application. Guillotina provides a command to bootstrap a configuration file for you by executing the following command

./bin/g create --template=configuration

This will produce a config.yaml file in your current path. Inspect the file to see what some of the default configuration options are.

Guillotina Training Guide

By following the training guide for Guillotina you will be able to:

  • learn how to configure Guillotina applications
  • use the Guillotina API to:
    • create content and content types
    • adding behaviors to content and content types
    • uploading and downloading files
    • adding and modifying permissions for content
  • learn about AsyncIO in Guillotina to schedule, execute and get short to long-running task. In addition, tasks can be offloaded into a subprocess which allows asynchronous requests.
  • creating your own addon to provide a new service
  • adding event listeners to content
  •  learn how to utilize guillotina default user management API

In addition, in the Guillotina training, you will be building a live chat application using the Guillotina REST API.

My thoughts on Guillotina

  • Was it hard? No
  • Did it take long? No, after learning it within the single day session, it took less than an hour to build.
  • Why use Guiltonia? Guillotina is simple, high performance and very scalable. It allows you to make it yours with little to no restrictions. I for one could say, Guillotina is surely like a Firebase server that you are control of.

See my previous blog about traveling to Barcelona.  

Go Back