pipeline.map(...) | connector.route(...) | project.int_type(...)Typed factories
Concrete methods constrain configuration at the Python call site instead of accepting a free-form type field.
When to use
Use concrete factories for all new declarations; they prevent properties from being applied to incompatible entity types.
Behavior
- A Pipeline creates concrete stream operators such as
map,filter,merge,input, andsink. - A connector creates only endpoints supported by its transport: HTTP route, gRPC method, Kafka topic, Cron schedule, or Temporal Activity/Workflow.
- Project type factories encode primitive, container, struct, message, and custom contracts.
- Python enums replace raw configuration strings for call semantics, methods, languages, adapters, schedules, and runtime options.
Pipeline stream methods properties
The method selects the stream type.
input(), sink()boundaryConsume from or publish to an Endpoint.
map(), filter(), process()transformationApply typed business behavior.
flat_map(), flat_map_iterable(), key_by()transformationChange cardinality or keying.
join(), multi_join(), merge()multi-inputCombine multiple flows.
split(), case(), when()routingBranch or select flows.
delay(), cycle_link(), error()controlDelay, cycle, or failure-flow operators.
Connector endpoint methods properties
Each method exposes only its supported settings.
HttpConnector.route()HTTPMethod, path, function, and tracing.
GrpcConnector.method()gRPCMethod name, streaming mode, function, and tracing.
KafkaConnector.topic()KafkaTopic, consumer group, partitions, replication, and partitioner settings.
CronConnector.schedule()CronFive-field schedule, timezone, and callback.
TemporalConnector.activity()TemporalActivity task queue, concurrency, retries, heartbeat, and optional schedule.
TemporalConnector.workflow()TemporalWorkflow task queue, concurrency, retries, execution timeout, and optional schedule.
Python example
order_type = project.struct_type("Order", fields={"id": string_type})
orders = project.kafka_connector("Orders", brokers="localhost:9092")
created = orders.topic(
"Order Created",
function=Function(name="OrderCreated", module=LOCAL_MODULE),
topic="orders.created",
)
pipeline = service.pipeline("orders")
incoming = pipeline.input("Consume Orders", endpoint=created, value_type=order_type)