Skip to content

Instantly share code, notes, and snippets.

@arjan
Created August 12, 2012 14:25
Show Gist options
  • Save arjan/3332063 to your computer and use it in GitHub Desktop.
Save arjan/3332063 to your computer and use it in GitHub Desktop.
zotonic 2.0

The main idea is to split off Zotonic's functionality in a set of OTP apps. Each site will become its own app. Modules are treated specially. They are also erlang apps, containing a simple-one-for-one supervisor, in which each child process is an actual running instance of the module for a specific site.

The most powerful feature of zotonic is its extensibility and flexibility. Zotonic consists of one or more sites, each of which use functionality which is contained in modules. In the site context, tools exist to communicate between these through notifications: a prioritized publish/subscribe mechanism for the exchange of messages through maps and folds.

The z_core app will consist of functions for starting/stopping sites and modules, broadcasting notifications within sites, and code for the indexing of the module files (e.g. for template finding; z_module_indexer). For sites and modules, behaviours will be created to reduce the amount of boilerplate code when implementing sites/modules.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment