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 |
|---|---|---|
contract → FunctionContract |
containment, [1] | Contains the function contract element(s) that make up this function; the contained objects belong to this model element. |
triggers → Trigger |
containment, [*]; opposite function |
Contains the trigger element(s) that make up this function; the contained objects belong to this model element. |
service → ServerlessService |
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. |
reads → StorageElement |
reference, [*] | References the storage element element(s) used as reads by this function; the target may be shared elsewhere in the model. |
writes → StorageElement |
reference, [*] | References the storage element element(s) used as writes by this function; the target may be shared elsewhere in the model. |
publishes → EventType |
reference, [*] | References the event type element(s) used as publishes by this function; the target may be shared elsewhere in the model. |
subscribesTo → EventType |
reference, [*] | References the event type element(s) used as subscribes to by this function; the target may be shared elsewhere in the model. |
callsAdapters → ExternalAdapter |
reference, [*] | References the external adapter element(s) used as calls adapters by this function; the target may be shared elsewhere in the model. |
usesSecrets → Secret |
reference, [*] | References the secret element(s) used as uses secrets by this function; the target may be shared elsewhere in the model. |
environmentVariables → EnvironmentVariable |
reference, [*] | References the environment variable element(s) used as environment variables by this function; the target may be shared elsewhere in the model. |
idempotency → IdempotencyPolicy |
reference, [?] | References the idempotency policy element(s) used as idempotency by this function; the target may be shared elsewhere in the model. |
timeout → TimeoutPolicy |
reference, [?] | References the timeout policy element(s) used as timeout by this function; the target may be shared elsewhere in the model. |
resilience → ResiliencePolicy |
reference, [?] | References the resilience policy element(s) used as resilience by this function; the target may be shared elsewhere in the model. |
concurrency → ConcurrencyPolicy |
reference, [?] | References the concurrency policy element(s) used as concurrency by this function; the target may be shared elsewhere in the model. |
observability → ObservabilityConfig |
reference, [?] | References the observability config element(s) used as observability by this function; the target may be shared elsewhere in the model. |
securityPolicies → SecurityPolicy |
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 |
|---|---|---|
filter → Expression |
containment, [?] | Contains the expression element(s) that make up this trigger; the contained objects belong to this model element. |
function → Function |
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. |
source → InvocationSource |
reference, [1] | References the invocation source element(s) used as source by this trigger; the target may be shared elsewhere in the model. |
startsWorkflow → WorkflowTarget |
reference, [?] | References the workflow target element(s) used as starts workflow by this trigger; the target may be shared elsewhere in the model. |
resilience → ResiliencePolicy |
reference, [?] | References the resilience policy element(s) used as resilience by this trigger; the target may be shared elsewhere in the model. |
batchPolicy → BatchPolicy |
reference, [?] | References the batch policy element(s) used as batch policy by this trigger; the target may be shared elsewhere in the model. |