Skip to content
This repository has been archived by the owner on Dec 12, 2022. It is now read-only.
Derk Norton edited this page Sep 12, 2021 · 41 revisions

Welcome

You have arrived at version 2 of the Bali Component Framework™ project. If you are a "bottom-up" type learner, you have come to the right place. If not, maybe start here instead, or iterate between the two. The Bali Component Framework™ provides the foundation for the Bali Nebula™ cloud-based operating system. Version 2 is the first stable version of the framework and is ready for general use. There are likely some bugs remaining in the framework so watch for minor releases which fix bugs and add functionality, and for emergency bug patches. Minor releases (e.g. v2.x) and emergency bug patches (e.g. v2.x.y) should never break the public interface for the framework.

Pyramid

The framework provides a rich set of JavaScript based components and utilities that can be used to model structured information and processes. A component representing such information may then be exported as a document string containing Bali Document Notation™.

An Example Document

To whet your appetite, here is a short example document that demonstrates the use of some of the more common component types available in the framework:

[
    $transactionId: #LYZ6PJ9GBABSF18MQMBSJDV7KAPV4MS7
    $timestamp: <2017-12-30T17:38:35.726>(
        $city: "Madrid"
        $country: "Spain"
    )
    $consumer: [
        $accountId: #SFNYCS6WTNCAVQ43DDS9HQJQX2A1XAPZ
        $email: <mailto:jane.smith@gmail.com>
    ]
    $merchant: [
        $accountId: #GYR0D0N7D7RGLAMM50TA7YYP9TRCYFF0
        $name: "Cool Deals R Us"
    ]
    $items: [
        [
            $name: "Hover Board"
            $version: v2.65
            $quantity: 1
            $price: 142($currency: $USD)
        ]
        [
            $name: "Hover Battery Packs"
            $version: v15.3.7
            $quantity: 2
            $price: 16($currency: $USD)
        ]
    ]
    $tax: 10.77($currency: $EUR)
    $total: 184.77($currency: $EUR)
]($type: /acme/accounting/Transaction/v3.4)

The document itself is fairly straight forward. It captures the transaction information associated with a payment from a consumer to a merchant. The example has been overly simplified but it gives you the gist of the rich component types available from the Bali Component Framework™ via their corresponding Bali Document Notation™ representation.

In Summary

The Bali Component Framework™ is a bit like JSON on steroids. It supports a much richer set of primitive elements and collection classes (20 types in all) compared with JSON's five total types. And just as JavaScript extends JSON to support functions, the Bali Component Framework™ provides a rich set of procedural constructs that make managing the components in the cloud simple and secure.

To dive in deeper on the parts of the framework that interest you most, click on links listed in the side bar in the upper right corner ↗️ of this page.