logo_smallAxellero.io

Overview

Introduction to Backbase - Axellero's dynamic database and API system

Backbase Overview

Backbase is a dynamic database and API system that automatically generates GraphQL APIs from entity definitions. The system provides schema management, data modeling, and API generation capabilities.

Core Functionality

Backbase generates database backends from entity definitions with:

  • Auto-generated GraphQL API with CRUD operations
  • Dynamic schema management without database migrations
  • Multi-language support for internationalization
  • Audit trails for data change tracking
  • Workflow integration capabilities
  • Entity and field management interface

Key Features

Dynamic Entity Management

Entity definitions include fields, relationships, and constraints. The system:

  • Creates database tables and indexes
  • Generates GraphQL schema with types, queries, and mutations
  • Handles data validation and type conversion
  • Manages relationships between entities

Field Types

Supported field types:

  • TEXT: String fields with search and translation support
  • INT: Integer numbers with validation
  • AMOUNT: Decimal numbers for currency values
  • BOOLEAN: True/false values
  • DATE/DATETIME: Date and time fields with timezone support
  • REFERENCE: Entity relationships
  • ENUM: Predefined value lists
  • OBJECT: JSON data structures
  • LOCATION: Geographic coordinate data
  • ID: Unique identifiers

Multi-Language Support

Internationalization features:

  • Translatable field configuration
  • Language-specific queries and mutations
  • Default language fallback
  • Translation management

Security Features

Data protection and access control:

  • Field-level encryption
  • User context and permission integration
  • Audit logging with change tracking
  • Application isolation and multi-tenancy

Architecture

Core Components

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   Studio UI     │    │   GraphQL API    │    │   Database      │
│                 │    │                  │    │                 │
│ Entity Designer │◄──►│ Auto-generated   │◄──►│ Dynamic Schema  │
│ Field Config    │    │ Schema & Ops     │    │ Indexes & Data  │
└─────────────────┘    └──────────────────┘    └─────────────────┘
         │                        │                       │
         ▼                        ▼                       ▼
┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   Workflows     │    │   API Layer      │    │   Audit Logs    │
│                 │    │                  │    │                 │
│ Business Logic  │    │ Query Processing │    │ Change Tracking │
│ Data Validation │    │ Translation      │    │ User Context    │
└─────────────────┘    └──────────────────┘    └─────────────────┘

Data Flow

  1. Entity Definition: Create entities and fields through management interface
  2. Schema Generation: System generates GraphQL schema automatically
  3. API Availability: CRUD operations available through GraphQL
  4. Workflow Integration: Connect to business logic and external systems
  5. Audit & Translation: Logging and language support enabled

Configuration Example

1. Define an Entity

{
  "code": "product",
  "name": "Product",
  "description": "Product catalog item",
  "isTranslatable": true,
  "fields": [
    {
      "code": "name",
      "name": "Product Name",
      "fieldType": "TEXT",
      "isRequired": true,
      "isTranslatable": true
    },
    {
      "code": "price",
      "name": "Price",
      "fieldType": "AMOUNT",
      "isRequired": true
    }
  ]
}

2. Use Auto-Generated API

# Create a product
mutation {
  bb_createProduct(input: {
    name: "Laptop"
    price: 999.99
  }) {
    id
    name
    price
  }
}

# Query products
query {
  productList(
    filter: { price_gte: 500 }
    order: { name: ASC }
  ) {
    id
    name
    price
  }
}

3. Add Multi-Language Support

{
  "name": "Laptop",
  "price": 999.99,
  "translations": {
    "es": { "name": "Portátil" },
    "fr": { "name": "Ordinateur Portable" }
  }
}

Query products in Spanish:

query {
  productList(language: "es") {
    name  # Returns "Portátil"
    price
  }
}

Use Cases

Suitable For

  • Applications with evolving data requirements
  • Multi-language content management
  • Dynamic configuration management
  • Applications requiring audit trails
  • Integration projects connecting multiple systems
  • Applications needing flexible schema evolution
  • Projects requiring internationalization
  • Systems with workflow integration needs
  • Applications with compliance requirements

Limitations

  • High-performance transactional systems
  • Applications with complex query requirements
  • Systems needing custom database optimizations
  • Projects requiring strict schema stability

Reference Documentation

  1. Field Types Reference - Available field types and configurations
  2. GraphQL API - Auto-generated API structure
  3. Entity Management - Schema creation and management
  4. Workflow Integration - Business logic integration
  5. Examples - Implementation examples and troubleshooting

System Features

Current implementation includes:

  • Performance and scalability improvements
  • Multi-language architecture
  • Workflow integration capabilities
  • Audit logging functionality
  • GraphQL API implementation

For migration information, consult the migration documentation.