Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Principle:Apache Druid Visualization Module Selection

From Leeroopedia


Knowledge Sources
Domains Visual_Exploration, Data_Visualization
Last Updated 2026-02-10 00:00 GMT

Overview

A pluggable visualization system that provides a registry of chart and table modules for rendering query results in the Explore view.

Description

Visualization Module Selection implements a module registry pattern where visualization components are self-registering plugins. Each module defines:

  • Unique ID: Identifier for serialization and lookup
  • Icon and title: For the module picker UI
  • Parameters: Typed parameter definitions (measures, dimensions, time bucket, etc.)
  • Component: React component that renders the visualization

Available modules:

  • time-chart: Time series line/area charts with D3 rendering
  • bar-chart: Grouped/stacked bar charts
  • pie-chart: Pie/donut charts
  • grouping-table: GROUP BY result tables with nested grouping
  • record-table: Raw record display without aggregation
  • multi-axis-chart: Multiple Y-axis chart for comparing different measures

The module system is extensible — new modules can be registered without modifying the core explore framework.

Usage

Use this principle when selecting which visualization to apply to a datasource. The module picker presents all registered modules and stores the selection in ExploreState.

Theoretical Basis

Module selection follows a self-registering plugin registry pattern:

Registry:
  Map<moduleId, ModuleDefinition>

ModuleDefinition = {
  id: string,
  icon: IconName,
  title: string,
  parameters: Record<string, ParameterDefinition>,
  component: (props: ModuleComponentProps) => JSX.Element
}

Registration:
  ModuleRepository.registerModule(timeChartModule)
  ModuleRepository.registerModule(barChartModule)
  ...

Lookup:
  ModuleRepository.getModule(moduleId) → ModuleDefinition
  ModuleRepository.getAllModuleEntries() → ModuleDefinition[]

Related Pages

Implemented By

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment