Frontend Development 17 min read

Design and Implementation of a No‑Code Logic Orchestration Platform (YOHO)

YOHO is a no‑code, graphically‑driven logic orchestration platform built on the G6 engine that lets non‑technical users compose business workflows by dragging components onto a canvas, exporting a DSL, and executing it at runtime, thereby separating UI from logic, enabling rapid parallel development, component reuse, and significant cost and time savings.

Youku Technology
Youku Technology
Youku Technology
Design and Implementation of a No‑Code Logic Orchestration Platform (YOHO)

Background and Motivation – The rapid growth of visual page building has created a surge in demand for interactive marketing components. Existing solutions for front‑end and back‑end logic orchestration lack a unified standard and are not accessible to non‑technical users. To break the bottleneck of development and maintenance resources, a No‑Code, graphically‑driven logic orchestration platform named YOHO was created, enabling non‑developers to compose business logic by dragging components.

Core Concepts – The platform consists of four main UI parts: a toolbar, a component (元件) list, a canvas, and a configuration panel. Users drag components onto the canvas, connect them with directional lines, and configure input parameters in the side panel. The resulting flowchart is exported as a DSL and transformed into executable code at runtime.

Component Design – Components are built on the G6 graph engine. Each component (node) includes a shape, branch lines, descriptive text, and connection nodes. Components are classified into two categories:

Basic components – No business logic; serve as start/end markers (green circles).

Business components – Contain logic and are further divided into:

The registration of custom shapes is illustrated below:

G6.registerNode(
  'diamond',
  {
    draw(cfg: Cfg, group: GGroup) {
      const size = [94, 64]; // [width, height]
      const width = size[0];
      const height = size[1];
      // SVG custom shape
      const path = [
        ['M', 0, 0 - height / 2], // top vertex
        ['L', width / 2, 0],       // right vertex
        ['L', 0, height / 2],     // bottom vertex
        ['L', -width / 2, 0],      // left vertex
        ['Z']                     // close path
      ];
      ...
    },
    afterDraw(cfg: Cfg, group: GGroup) {
      const size = [100, 64];
      const width = size[0];
      const height = size[1];
      // branch description
      addDesc(cfg, group, width, height, cfg.outLine);
      // branch line
      addLine(group, width, height, cfg.outLine);
      // connection anchors
      addNode(group, width, height, cfg.outLine, cfg.showNode);
    },
    ...
  },
  'base-node',
);

Branch line rendering based on the number of outputs:

const addLine = (group, width, height, outLine) => {
  group.addShape('path', {
    attrs: {
      path: [
        ['M', -width / 2 * (outLine - 1), height + 3],
        ['L',  width / 2 * (outLine - 1), height + 3],
        ['Z']
      ],
      ...edgeStyle
    },
    draggable: true,
  });
};

Node (anchor) creation for inputs and multiple outputs:

const addNode = (group, width, height, outLine, isShow) => {
  const xPosition = i => -width / 2 * (outLine - 1) + width * i;
  outLine && new Array(outLine).fill(0).forEach((d, i) => {
    group.addShape('circle', {
      attrs: {
        x: xPosition(i),
        y: height + 4,
        r: 4.5,
        ...dotStyle
      },
      name: `circle-shape-${i + 1}`
    });
  });
};

Component Project Structure – Each component package contains four files:

index.js – the component’s main function.

input.json – schema for configuring input parameters.

branch.json – defines the number and semantics of output branches.

output.json – schema describing the data returned after execution.

Visual Form Builder – The platform embeds a form‑render based designer that generates the JSON schemas for input.json and output.json . Users can drag‑and‑drop fields, export the schema, and the platform consumes it for component registration.

Integration with UI Orchestration – The logic platform is combined with a UI composition tool (hot‑area modules). Logic can be triggered automatically on load or manually by user interaction. Execution results are stored in a shared context, driving UI updates via data binding.

Advantages – Compared with traditional development, the new workflow allows parallel UI and logic development, reduces code‑release cycles from days to hours, and achieves significant cost‑saving and efficiency gains. Component reuse at a fine granularity further lowers maintenance overhead.

Overall Architecture – The system comprises three layers:

Orchestrator – UI built on G6, component registration, canvas tools.

DSL Converter – Serialises the canvas into JSON for downstream consumption.

Runtime – Executes the DSL, provides APIs for component invocation, and propagates results to the business platform.

Conclusion – The platform delivers three breakthroughs: reusable logic, clearer division of labor between UI and logic, and cross‑business applicability through a generic component ecosystem.

DSLFront-End DevelopmentComponent DesignG6Logic OrchestrationNoCodevisual builder
Youku Technology
Written by

Youku Technology

Discover top-tier entertainment technology here.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.