DOCS / HOW-TO

Extending an engine

Five in-process extension points, and the rule that decides when a rule belongs in the request instead.

01

What you can replace

Placement constraints, item ordering, candidate scoring, container selection, solution scoring and a complete single-container solver are registered through the extension registry, without global mutable configuration.

02

Extensions are not cross-language features

An engine driven over JSON as a subprocess has no wire representation for a registered scorer, so no harness can check that four engines agree about it. Use extensions to specialise one application in one language.

03

When it belongs in the request

A rule that must hold for every caller of every binding belongs in the request as versioned data: a policy document rather than a plugin. It is then auditable, portable and enforced during the search by every engine.