Skip to content
Jake edited this page Mar 7, 2018 · 19 revisions

Leverage Logo

forthebadge forthebadge

Leverage Wiki

This guide will take you through Leverage's concepts and provide you with enough information to use the library efficiently. If you find anything confusing and/or missing, please don't hesitate to file an issue.

General concepts

Leverage was created to allow any developer to create an application by using a common interface. Application configuration should be:

  1. Simple

  2. As declarative as possible

  3. Easy to change later

With these ideas in mind, let's take a look at the structure of Leverage:

Leverage General Architecture

NOTE: The above image is a simplification and ignores both Services and Middleware because they can be more complex and will be introduced later.

Let's work through general purposes of these three distinct concepts:

Manager

The Leverage Manager is provided in the @leverage/core package and will handle gluing the rest of your application together. Leverage's manager functions as the base of your application that we will then build on top of. All other pieces of your app will be handed off to the manager so that it can work its magic!

Plugin

A Leverage Plugin defines some kind of interaction or process. For example, a very common plugin would be the HTTP plugin available from the @leverage/plugin-http package. This plugin defines how one would receive and respond to HTTP requests.

Component

A Leverage Component defines a specific interaction within a plugin's process. Were we to create a component for a HTTP plugin, this specific interaction would be handling one HTTP request at a given route.

Clone this wiki locally