Skip to content

Provider-independent compute

Compute elements describe what runs and why without committing to Lambda, containers, or another provider-specific runtime.

Source: mde/metamodels/pim/pim-compute.emf.

ComputeElement

An abstract compute element concept. Use one of its concrete subtypes when creating a model instance; the shared attributes and relationships defined here still apply.

Direct supertypes: TraceableElement, FlowEndpoint, PolicyTarget, ProtectedResource. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
responsibility String [1] The business or technical responsibility executed by the compute element; it is the explanation EVL requires before a function can be considered meaningful. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Reserve inventory for a confirmed order..
stateless Boolean [1] Whether execution may rely only on its input and external stores. This determines whether retries and horizontal scaling are safe without hidden in-memory state. Either true or false. Example: false.
coldStartSensitive Boolean [1] Whether startup latency materially affects the use case, a PIM concern that can later influence runtime, provisioned concurrency, or architecture choices. Either true or false. Example: false.
expectedAverageDurationMs Integer [1] The expected ordinary execution time, used as a design estimate rather than a provider timeout. It provides a baseline for SLO and cost reasoning. A numeric Integer value; use the unit or boundary documented for this attribute. Example: 30.
expectedP95DurationMs Integer [1] The tail-latency estimate for normal execution. Comparing it with the average exposes unrealistic performance assumptions before deployment. A numeric Integer value; use the unit or boundary documented for this attribute. Example: 30.
expectedPeakConcurrency Integer [1] The expected simultaneous execution demand, supporting concurrency, throttling, and capacity decisions without tying the PIM to Lambda terminology. A numeric Integer value; use the unit or boundary documented for this attribute. Example: 1.
computeProfile ComputeProfile [1] The dominant workload characteristic, IO-bound, CPU-bound, memory-intensive, latency-sensitive, batch, or lightweight, used to choose a suitable provider mapping. Exactly one of: IO_BOUND, CPU_BOUND, MEMORY_INTENSIVE, LATENCY_SENSITIVE, BATCH_ORIENTED, LIGHTWEIGHT, UNKNOWN. Example: IO_BOUND.
executionModel ExecutionModel [1] Whether the work is request/response, asynchronous, batch, streaming, scheduled, or a workflow task. It determines the invocation contract. Exactly one of: REQUEST_RESPONSE, ASYNC_EVENT, BATCH_EVENT, STREAM_EVENT, SCHEDULED, WORKFLOW_TASK. Example: REQUEST_RESPONSE.

Relationships

This class declares no direct relationships.

Function

Represents function in the PIM vocabulary. It specializes ComputeElement, DeployableElement, InvocationTarget, FunctionTarget, SubscriptionTarget, RoutingTarget, ConfigurableElement with the details needed for this modeling concern.

Direct supertypes: ComputeElement, DeployableElement, InvocationTarget, FunctionTarget, SubscriptionTarget, RoutingTarget, ConfigurableElement. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
handlerResponsibility String [1] The concrete operation implemented by the function. It is used by CIM-to-PIM and PIM-to-PSM to explain the generated Lambda and to identify missing business logic. Semantic validation: FunctionResponsibilityRequired (function responsibility required) in mde/validation/pim/rules/compute.evl the value must be present and non-blank. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. ETL rule Query2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Reserve inventory for a confirmed order.
sourceNameSuggestion String [1] A preferred implementation name supplied by the modeler, allowing generated code to remain recognizable without making the business model depend on a filename. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. ETL rule Query2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: reserveInventory.
publicEntryPoint Boolean [1] Whether the function is intentionally reachable from a public edge. EVL uses it to demand authentication or authorization rather than accepting an accidentally open entry point. Semantic validation: PublicFunctionShouldHaveSecurityPolicy (public function should have security policy) in mde/validation/pim/rules/compute.evl the feature participates in a semantic validation condition. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. ETL rule Query2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. Either true or false. Example: true.
writesState Boolean [1] Whether the function changes durable business state. It drives the requirement for idempotency, storage references, and safer retry semantics. Semantic validation: WritesStateMustReferenceStores (writes state must reference stores) in mde/validation/pim/rules/compute.evl the feature participates in a semantic validation condition. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. ETL rule Query2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. Either true or false. Example: false.
readsState Boolean [1] Whether the function depends on durable state. When true, EVL expects explicit read stores so the design does not hide a data dependency inside code. Semantic validation: ReadsStateMustReferenceStores (reads state must reference stores) in mde/validation/pim/rules/compute.evl the feature participates in a semantic validation condition. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. ETL rule Query2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. Either true or false. Example: false.
publishesEvents Boolean [1] Whether successful execution emits domain events. The corresponding event types are required so the event contract is not an undocumented side effect. Semantic validation: PublishesEventsMustReferenceEventTypes (publishes events must reference event types) in mde/validation/pim/rules/compute.evl the feature participates in a semantic validation condition. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. ETL rule Query2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. Either true or false. Example: false.
requiresNetworkAccess Boolean [1] Whether the function needs network connectivity beyond the default execution environment; AWS transformation uses it to decide VPC attachment and related review. Semantic validation: ExternalCallsNeedResilienceAndTimeout (external calls need resilience and timeout) in mde/validation/pim/rules/compute.evl the collection or referenced set must not be empty. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. ETL rule Function2AwsLambdaFunction in mde/transformations/pim-to-awspsm/compute-api.etl reads or derives this feature while refining Function. Either true or false. Example: false.
requiresFileSystem Boolean [1] Whether the operation needs a mounted filesystem. This is intentionally explicit because it introduces an AWS EFS-style dependency and deployment work. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. ETL rule Function2AwsLambdaFunction in mde/transformations/pim-to-awspsm/compute-api.etl reads or derives this feature while refining Function. Either true or false. Example: false.
requiresLargeTemporaryStorage Boolean [1] Whether ordinary ephemeral space is insufficient. The AWS mapping uses this to select a larger temporary-storage configuration and produce a concrete infrastructure consequence. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. ETL rule Function2AwsLambdaFunction in mde/transformations/pim-to-awspsm/compute-api.etl reads or derives this feature while refining Function. Either true or false. Example: false.
requiresIdempotency Boolean [1] Whether duplicate invocation safety is a direct requirement, even if it is not inferred from writesState or event publishing. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl reads or derives this feature while refining Function. Generation role: The artifact generator references this feature in mde/generation/awspsm-to-artifacts/lib/contracts.eol. The artifact generator references this feature in mde/generation/awspsm-to-artifacts/templates/lambda/go-handler.egl. Either true or false. Example: false.
businessOperationRef String [1] The traceable link to the business operation realized by the function, preserving why the function exists when implementation names change. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: command.reserveInventory.
functionKind FunctionKind [1] The architectural role of the function, command handler, query handler, event handler, policy handler, orchestration task, adapter, scheduled task, stream processor, or maintenance task. Transformation role: ETL rule Command2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. ETL rule Query2Function in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining Function. Exactly one of: COMMAND_HANDLER, QUERY_HANDLER, EVENT_HANDLER, POLICY_HANDLER, ORCHESTRATION_TASK, EXTERNAL_ADAPTER, SCHEDULED_TASK, STREAM_PROCESSOR, MAINTENANCE_TASK. Example: COMMAND_HANDLER.

Relationships

Relationship Kind and multiplicity Meaning in the model
contractFunctionContract containment, [1] Contains the function contract element(s) that make up this function; the contained objects belong to this model element.
triggersTrigger containment, [*]; opposite function Contains the trigger element(s) that make up this function; the contained objects belong to this model element.
serviceServerlessService reference; read-only, [1]; opposite functions References the serverless service element(s) used as service by this function; the target may be shared elsewhere in the model.
readsStorageElement reference, [*] References the storage element element(s) used as reads by this function; the target may be shared elsewhere in the model.
writesStorageElement reference, [*] References the storage element element(s) used as writes by this function; the target may be shared elsewhere in the model.
publishesEventType reference, [*] References the event type element(s) used as publishes by this function; the target may be shared elsewhere in the model.
subscribesToEventType reference, [*] References the event type element(s) used as subscribes to by this function; the target may be shared elsewhere in the model.
callsAdaptersExternalAdapter reference, [*] References the external adapter element(s) used as calls adapters by this function; the target may be shared elsewhere in the model.
usesSecretsSecret reference, [*] References the secret element(s) used as uses secrets by this function; the target may be shared elsewhere in the model.
environmentVariablesEnvironmentVariable reference, [*] References the environment variable element(s) used as environment variables by this function; the target may be shared elsewhere in the model.
idempotencyIdempotencyPolicy reference, [?] References the idempotency policy element(s) used as idempotency by this function; the target may be shared elsewhere in the model.
timeoutTimeoutPolicy reference, [?] References the timeout policy element(s) used as timeout by this function; the target may be shared elsewhere in the model.
resilienceResiliencePolicy reference, [?] References the resilience policy element(s) used as resilience by this function; the target may be shared elsewhere in the model.
concurrencyConcurrencyPolicy reference, [?] References the concurrency policy element(s) used as concurrency by this function; the target may be shared elsewhere in the model.
observabilityObservabilityConfig reference, [?] References the observability config element(s) used as observability by this function; the target may be shared elsewhere in the model.
securityPoliciesSecurityPolicy reference, [*] References the security policy element(s) used as security policies by this function; the target may be shared elsewhere in the model.

Trigger

Represents trigger in the PIM vocabulary. It specializes TraceableElement, PolicyTarget with the details needed for this modeling concern.

Direct supertypes: TraceableElement, PolicyTarget. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
triggerKind String [1] The business/architectural source category that starts the computation. It distinguishes an event, schedule, API, data change, or workflow trigger before AWS event source mapping. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: OrderConfirmedEvent.
enabled Boolean [1] Whether the trigger is active in the model's intended deployment. A disabled trigger is allowed only with an explanation so draft or phased behavior is not mistaken for omission. Semantic validation: DisabledTriggerShouldExplainWhy (disabled trigger should explain why) in mde/validation/pim/rules/compute.evl the related value or object must be explicitly provided. Either true or false. Example: true.
filterExpression String [1] The predicate that decides which source records or events should invoke the target. It reduces accidental fan-out and becomes a candidate for provider-specific event filtering. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: $.detail.status = 'CONFIRMED'.
generatedFromFlow Boolean [1] Whether the trigger was derived from an integration flow. It helps distinguish a transformation result from a manually authored entry point during synchronization. Either true or false. Example: false.
invocationMode InvocationMode [1] How the target is invoked, synchronously, asynchronously, by polling, on a schedule, or through orchestration, so the source/target contract remains explicit. Exactly one of: SYNCHRONOUS, ASYNCHRONOUS, POLLED, SCHEDULED, ORCHESTRATED. Example: SYNCHRONOUS.

Relationships

Relationship Kind and multiplicity Meaning in the model
filterExpression containment, [?] Contains the expression element(s) that make up this trigger; the contained objects belong to this model element.
functionFunction reference; read-only, [1]; opposite triggers References the function element(s) used as function by this trigger; the target may be shared elsewhere in the model.
sourceInvocationSource reference, [1] References the invocation source element(s) used as source by this trigger; the target may be shared elsewhere in the model.
startsWorkflowWorkflowTarget reference, [?] References the workflow target element(s) used as starts workflow by this trigger; the target may be shared elsewhere in the model.
resilienceResiliencePolicy reference, [?] References the resilience policy element(s) used as resilience by this trigger; the target may be shared elsewhere in the model.
batchPolicyBatchPolicy reference, [?] References the batch policy element(s) used as batch policy by this trigger; the target may be shared elsewhere in the model.