Riberry

Riberry

  • Docs
  • Blog

›Design

Introduction

  • Overview
  • Installation

Configuration

  • Core
  • Application

Design

  • Overview
  • Core
  • Custom
  • Domain Model

Core Components

The following diagram represents the core components typically present in a fully-functioning instance of Riberry.

Web Application

Riberry's frontend is a single-page application (SPA) which interacts with Riberry's REST API. The REST API exposes Riberry's domain model by returning JSON resources.

The actual web application is de-coupled from Riberry's core, and the two components (web application and REST API) are both optional and swappable. Riberry can function without the web application running, and with it, Riberry turns into a backend system which can still perform all the operations which were exposed to users via the web application.

The architecture of the web application tries to adhere to Martin Fowler's Service Layer design pattern.

Background Tasks

Riberry itself is a real-time system driven by Celery. Behind the scenes, Riberry is scheduling jobs, processing events and executing custom tasks defined by plugins and extensions.

The Celery application which drives these background tasks is riberry.celery.background.

Riberry Tasks Scheduler

The Riberry Tasks Scheduler is an instance of Celery beat which is queuing core and plugin tasks on pre-defined intervals.

Job Scheduler Worker

Celery queue: riberry.background.schedules

The Job Scheduler is a Celery worker which manages job scheduling. It will retrieve and process all job schedules to determine if it should create a new execution.

Configuration specific to this worker can be found here.

Events Processor Worker

Celery queue: riberry.background.events

The Events Processor is a Celery worker which processes all events generated by the custom Celery applications. Events fall into three categories:

  1. Stream events
  2. Artifact events
  3. Notification events

Configuration specific to this worker can be found here.

Custom Task Worker

Celery queue: riberry.background.custom

The Custom Task Executor is a Celery worker which processes any custom tasks declared by Riberry plugins and extensions. An example of a Riberry plugin is Riberry-LDAP, which declares a custom task that synchronizes the LDAP groups every two minutes.

← High-level OverviewCustom Celery Workflows →
  • Web Application
  • Background Tasks
    • Riberry Tasks Scheduler
    • Job Scheduler Worker
    • Events Processor Worker
    • Custom Task Worker
Riberry
Docs
Getting Started (or other categories)Guides (or other categories)API Reference (or other categories)
Community
User ShowcaseStack OverflowProject ChatTwitter
More
BlogGitHubStar
Facebook Open Source
Copyright © 2018 Shady Rafehi