Package app.ductape.sdk.products.builder
package app.ductape.sdk.products.builder
Sprint 3 — Fluent
ProductBuilder surface mirroring the TypeScript SDK's
products.service.ts fluent DSL.
Design:
ProductBuilderis the root entry point obtained viaductape.products().builder(productTag)(or via the dedicated factory).- Each domain has a step-typed chain class
(
AppChain,DatabaseChain,GraphChain, etc.). - Chain methods are mutator-style (
withX(...)) and returnthis; the terminalregister()/define()method pushes the accumulated state to the backingProductsService(server-side persisted) or returns a finalizedMappayload (definition-only build). - Internal state is mutable for chain ergonomics; the
ProductBuilder.build()exit yields an immutableMapsnapshot of the full product definition.
Parity is enforced by ProductBuilderParityTest (Sprint 3) using JSON-snapshot
comparison against the TypeScript reference fixtures (Sprint 6).
-
ClassesClassDescriptionSprint 3 — Apps fluent chain.Inline action builder used by
AppChain.withAction(String, Consumer).Inline notification builder.Inline storage builder.Sprint 3 — Broker fluent chain (.broker(...)withwithTopic / withConsumer / withIdempotency).Sprint 3 — Database fluent chain.Sprint 3 — Executable fluent chain.Inline payload params builder.Sprint 3 — Fallback fluent chain.Sprint 3 — Graph fluent chain (.graph(...)withwithAction / withSchema).Sprint 3 — Healthcheck fluent chain.Sprint 3 — Model fluent chain.Sprint 3 — FluentProductBuilderentry point.Sprint 3 — Quota fluent chain.Sprint 3 — Secret fluent chain.Sprint 3 — Vector fluent chain (.vector(...)withwithAction / withEmbedding).