Platform architecture

One schema. Any attribute. Any source.

Arvyn isn’t a fixed set of features — it’s an attribute-agnostic catalog platform. Any signal you can produce at SKU level lands in the read store, rolls up to the product, and instantly becomes available to rank, filter and validate on.

The idea

Land it at the SKU, use it everywhere

The platform doesn’t care what an attribute means. If a value can be attached to a SKU, Arvyn ingests it through the same CDC/streaming path as the catalog, aggregates it to the product with a declared rollup rule, and exposes it to every engine at once.

Any source

Any source

ERP, orders, reviews, returns, suppliers, CMS

Land at SKU

Land at SKU

The value attaches at SKU grain in the read store

Roll up

Roll up

A declared rule aggregates SKU → product correctly

Use everywhere

Use everywhere

Rankable, filterable & validatable — no code change

Why it compounds

Every new attribute lights up all three engines

The engines are generic — they operate on whatever attributes are present, not a hardcoded list. One new signal delivers value in three places at once.

Ranking

Ranking

Rank any page toward a business goal using any numeric attribute — margin, velocity, return rate, lead time.

Faceting & curation

Faceting & curation

Filter and curate on any attribute — a page of high-rating, in-stock, fast-shipping products across collections.

Validation

Validation

Write rules against any attribute — flag SKUs missing cost, with high returns, or below a rating threshold.

The real engineering

“Propagate to the product” is a declared rule

The power is in the rollup. How a SKU value becomes a product value depends on what the attribute means — so each attribute registers its own rule, and aggregation is always correct.

ATTRIBUTESOURCESKU → PRODUCTWHY
Units soldOrdersSUMTotal sales is the sum across every SKU.
InventoryCommerceSUM · ANY>0Total on hand — and “is it in stock at all?”
PriceCommerceMINThe “starting at” price — the entry point.
RatingReviewsWEIGHTED_AVGWeighted by review count — not the average of averages.
Return rateReturnsWEIGHTED_AVGWeighted by volume so high-sellers count proportionally.
Lead timeSuppliersMAXThe product is ready only when its slowest SKU is.
MarginDerivedDERIVE(price,cost)Computed after rollup from rolled price & cost — never summed.

Two traps the rollup must handle

Derived-not-rolled: ratios like margin are computed from rolled inputs, not aggregated. Weighted-not-simple: a product's rating is the review-weighted average of its SKUs. The registry captures the weighting so numbers are always right.

Said honestly

The ingestion is generic; each new attribute needs its rollup rule declared (SUM, weighted average, or derived). A small, well-defined configuration step per attribute — not a code change, and not magic.

Build the pipe once — the value compounds

Connect a source, get a new lever. No re-architecture per attribute.

Thanks!

We’ve sent the framework to your email. Please check inbox.

Thanks For Reaching Out!

We’re mobilizing the right person to connect with you. While we prep, come hang out on our social pages!