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

51 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.