In Emolysis, a template slot is a named, typed placeholder in a pipeline template, such as the business key in an SCD Type 2 template or the watermark column in an Incremental append template.
For example, an SCD Type 2 template might declare a slot business_key of type columns, a slot tracked_columns of type columns, a slot effective_from of type expression and a slot target of type table. Asked to keep the history of customer addresses, the agent fills target and business_key from your catalog, where it can see the table and its key, takes the tracked columns from your request, and asks you only where the effective date should come from. The template file itself does not change; only the slot values do.
Typed slots keep generated code inside known limits. A table slot accepts only a table reference, an integer slot only a whole number and an enum slot only one of its listed values, so a value of the wrong kind is rejected before any code is rendered, rather than producing a query that fails on the platform or, worse, runs and does the wrong thing. Values are rendered in the target platform's dialect, so quoting and escaping follow that platform's rules.
Because the template and its tests are fixed and only the slots vary, the template's golden tests stay meaningful for every pipeline built from it: the fixtures exercise the template's logic, and the slot values decide which tables and columns that logic applies to. See also platform profile, natural key and golden test.
The agent shows the filled slots before it renders anything, so you can check the key and the tracked columns in one place. See also SCD Type 2 and watermark.
Slot types include table, column, columns, expression, duration and enum, so a value cannot land in the wrong place. The agent fills slots from your catalog and request, and asks you only for what is missing. See Templates and slots for all eleven types.