Ana içeriğe geç

"observability" ile etiketlenmiş 7 gönderi

Tüm Etiketleri Görüntüle

Release v0.0.91

· 8 dakikalık okuma
vNext Team
Burgan Tech Engineering

Overview

This release gives cross-domain calls a second transport. ServiceDiscovery:Provider switches between http and dapr: under dapr, address resolution moves from the discovery registry's per-call HTTP lookup to Dapr Name Resolution, and the Remote* app services gain a Dapr service-invocation transport, with the registry kept for registration and health (#964). The default stays http and is byte-for-byte the previous behaviour, so enabling dapr is an environment setting rather than an upgrade step. Inline auto-chain hops reuse the context they already hold, and subflow starts and forwards execute synchronously for more predictable completion (#968). Post-commit settlement gets a named parent span so the fresh-parent settle stops rendering as loose siblings, and runtime-internal child start/forward calls skip a response enrichment whose result is thrown away — the reload, schema filter, script context and extensions were all being built for a caller that reads only IsSuccess and Status (#969). A further round of trace refinements tightens span naming, job-handler activity creation and event trace parenting (#963). This release runs on component schema 0.0.53.

Release v0.0.90

· 6 dakikalık okuma
vNext Team
Burgan Tech Engineering

Overview

This release reorders the transition pipeline's epilogue so timers are never armed for a state the instance is already leaving. LifecycleOrder.Auto becomes 80 and LifecycleOrder.Schedule becomes 90 — auto-transition conditions are evaluated before scheduled transitions arm their timers — and a new guard skips arming entirely when the auto step has already selected a winner, logging ScheduledTransitionsSkippedForChainedNext (EventId 10156, Debug) instead of enqueuing a Dapr job and an InstanceJob row that the next hop would immediately tear down (#943). Beyond the wasted enqueue, the armed-then-cancelled window briefly exposed scheduled entries in the state function for states the instance was already leaving — clients could see a timer that would never fire. Alongside it, activation-episode tracing ties triggers, asynchronous jobs, subflows and event delivery into a single named episode, with synthetic activation spans and end-to-end activation duration metrics (#931). This release runs on component schema 0.0.53.

Release v0.0.87

· 8 dakikalık okuma
vNext Team
Burgan Tech Engineering

Overview

This release spans the transition pipeline end to end, and then removes the redundancy that filling in the trace tree exposed. Every time-consuming mechanism is now a span — validation, context load, instance read, task input/invoke/output compilation, subflow mapping, locks, component reads, the write side and the stretch after the pipeline — all always on, not gated behind Verbose, with the rule that a step which did no work emits no span at all (#920). With the tree filled in, a single business request turned out to resolve the same workflow definition three or more times per hop, load the same instance twice, validate the same payload schema twice, and build a fully populated transition context only to throw it away. The second half of the release removes exactly that: one workflow resolution per hop, snapshot-based admission, a single owner for payload-schema validation, and the orphaned IWorkflowContext deleted outright (#920). The measured effect on one traced business request: time inside SyncTransitionStrategy that no child span accounted for drops from 976 ms to 14 ms. This release runs on component schema 0.0.53.

Release v0.0.85

· 20 dakikalık okuma
vNext Team
Burgan Tech Engineering

Overview

This release adds the first genuinely parallel task type and cuts the read path's cost in half. FanOutTask (type 21) resolves a collection at runtime and runs a referenced inner task once per item concurrently, joining the outcomes by policy and writing one output to instance data — replacing the $self auto loop that cost N full pipeline hops with a single transition (#905). Component definitions gain an in-process L1 cache in front of the distributed store, keyed by the existing Redis keys so a publish makes stale entries unreachable by construction, plus a five-second generation-token memo that removes the token read from the hot path entirely (#898); script secret bundles are cached in-process with a short TTL and single-flight stampede protection, taking a cold ~8.5 ms vault read down to ~1 µs warm (#899). Traces get flat lanes — one lane per instance instead of nesting equal to chain depth — and job arming moves outside the instance status lock, taking the worst observed lock hold from 30.1 s to 48 ms (#900). Payload envelope detection is resolved by field set rather than a single property, and a rejected payload can no longer come back naming no field at all (#906). Finally, the script compiler and ScriptContext get a measurement-first optimization pass with new metrics, an opt-in PreserveNumericPrecision flag and a LegacyAppendPipeline kill-switch (#907). This release runs on component schema 0.0.53.

Release v0.0.81–84

· 15 dakikalık okuma
vNext Team
Burgan Tech Engineering

Overview

This post consolidates four interim versions — v0.0.81, v0.0.82, v0.0.83 and v0.0.84 — shipped in quick succession between August 17 and August 20. The headline change is in v0.0.84: instance query handling moves from fail-open to fail-closed, so a malformed or unsupported filter, sort, groupBy or aggregation is rejected with HTTP 400 before execution instead of silently widening the query and returning wrong rows (#881); the same release gives scheduledTransitions entries the uniform link metadata every other transition entry carries, at response shape v7 (#894). The interim versions are corrective: v0.0.81 closes the three missing links that detached an Elastic APM trace subtree (#887), makes script compilation race-free under load (#888) and repairs the release pipeline so a partially-published release can be completed rather than abandoned (#886); v0.0.82 puts authoritative Busy reads and writes in isolated transactions (#890); and v0.0.83 lets error-boundary transitions re-enter a Busy instance (#892). This release runs on component schema 0.0.52.

Release v0.0.80

· 14 dakikalık okuma
vNext Team
Burgan Tech Engineering

Overview

This release makes a client request observable from end to end and finishes the Busy-as-mutex work started in v0.0.79. Armed timers are now visible to clients — the state response carries a scheduledTransitions list built from active scheduled-transition jobs, each with a persisted UTC executeAtUtc taken from the new InstanceJob.ExecuteAt column, and the scheduled job set folds into the fingerprint ETag so a parked long-poller no longer misses a re-armed timer (response shape v6) (#876). Correlation becomes a four-carrier contract — W3C trace context, X-Request-Id, X-Correlation-Id and X-Workflow-Instance-Id each do exactly one job, propagate across the orchestration → execution → outbound-task boundary, and land in Elastic under stable label names, so one query returns a whole flow (#879, #882). Busy-as-mutex is refined in three places: a $self transition no longer re-runs the state's lifecycle, the accept path takes one lock instead of two, and an async accept on a parent holding an open SubFlow correlation now reserves the whole chain down to the leaf before answering 202 (#883, #884). This release runs on component schema 0.0.52.

Release v0.0.79

· 19 dakikalık okuma
vNext Team
Burgan Tech Engineering

Overview

This release turns functions into fully declared client contracts and closes long-standing gaps in transition authorization. Functions gain a declarative contractverbs, inputSchema, outputSchema, inputView, outputView — enforced at invocation (405 with Allow for undeclared verbs, 400 with field-level errors on schema violations) (#858); every contract slot also accepts rule-based entries (first match wins, trailing rule-less fallback) and is discoverable through new /info, /view, /schema endpoints plus a built-in catalog function linked from the state response (#868, #869). Views declare per-mode display with the new { sdi, mdi } object form alongside the legacy string (#858). Mapping scripts can read related instances — the parent that started this instance, or its own sub items — through context.Related instead of duplicating data across the boundary (#857). updateData and exit are now discoverable in availableTransitions and their roles actually filter (#859), availableIn entries can be role-scoped per state (#870), and all role grant evaluation funnels through one evaluator, fixing surfaces that disagreed about the same caller (#860). The state function returns completed child correlations with terminal outcomes (#856), and UrlTemplates collapses to a single BasePath (#871). Fixes cover component version-resolution caching (#867) and subflow terminal-event deduplication (#855). Transition execution moves to Busy-as-mutex — the Busy status itself is the execution mutex, updateData becomes a status-neutral reserve transition admitted unconditionally (the one safe way to update data and advance an instance under parallel requests), cancel/exit bypass the busy check, and every InstanceData row is persisted the moment it is produced (#877). Workflow tracing gains a business-focused span taxonomy (vnext.layer, vnext.span.category) on Aether 1.0.34, defaulting to the Business detail level (#874). This release runs on component schema 0.0.52.