Files
herolib/libarchive/baobab/README.md
2025-08-29 09:48:13 +02:00

2.5 KiB
Raw Blame History

Base Object and Actor Backend

This is Heros backend, designed around the concept of base objects and actors to enable modular, domain-specific operations.

Base Object

Base objects are digital representations of real-world entities. Examples include projects, publications, books, stories (agile), and calendar events. These objects: • Serve as the primary data units that actors operate on. • Contain indexable fields for efficient retrieval. • Share a common base class with attributes like: • Name: The objects identifier. • Description: A brief summary of the object. • Remarks: A list of additional notes or metadata.

Base objects are stored, indexed, retrieved, and updated using OSIS (Object Storage and Indexing System).

Actor

Actors are domain-specific operation handlers that work on base objects. For instance, a Project Manager Actor might manage operations on stories, sprints, or projects.

Key Features of Actors: • Domain-Specific Languages (DSLs): Actor methods form intuitive, logical DSLs for interacting with base objects. • Specification-Driven: • Actors are generated from specifications. • Code written for actor methods can be parsed back into specifications. • Code Generation: Specifications enable automated boilerplate code generation, reducing manual effort.

Modules

OSIS: Object Storage and Indexing System

OSIS is a module designed for efficient storage and indexing of root objects based on specific fields. It enables seamless management of data across various backends, with built-in support for field-based filtering and searching.

Key Components

Indexer:

  • Creates and manages SQL tables based on base object specifications.
  • Enables indexing of specific fields, making them searchable and filterable.

Storer:

  • Handles actual data storage in different databases.
  • Supports diverse encoding and encryption methods for secure data management.

By integrating OSIS, the backend achieves both high-performance data querying and flexible, secure storage solutions.

Example Actor Module

The Example Actor module is a reference and testable example of a generated actor within Baobab. It demonstrates the structure of actor modules generated from specifications and can also be parsed back into specifications. This module serves two key purposes:

  1. Acts as a reference for developers working on Baobab to understand and program against actor specifications.
  2. Provides a compilable, generatable module for testing and validating Baobabs code generation tools.