Skip to main content

Release v0.0.29

· 7 min read
vNext Team
Burgan Tech Engineering

🧭 Overview

This release introduces significant new features including Service Discovery for cross-domain communication, Default Auto Transition support, "latest" version resolution, and a new Transition Schema API endpoint. Additionally, important bug fixes for subflow extensions, sequential task initialization, and publish component timeouts have been implemented.

⚠️ New Feature Alert: Service Discovery requires additional setup. See the Service Discovery section below for configuration details.


🚀 New Features

1. Service Discovery for Cross-Domain Communication

Implemented service discovery to enable communication between different domains.

Details:

  • Domains can now discover and communicate with services in other domains
  • Requires vnext-domain-discovery runtime installation (one per environment recommended)
  • Core domain structure for service registration and discovery

Configuration: Add the following to your appsettings.json:

{
"ServiceDiscovery": {
"Enabled": false,
"BaseUrl": "http://localhost:3001/api/v1",
"ValidateSsl": false,
"Domain": "discovery",
"RegistryFlow": "domain-registration",
"TimeoutSeconds": 30,
"MaxRetryAttempts": 3,
"RetryDelayMilliseconds": 1000,
"CircuitBreakerFailureThreshold": 5,
"CircuitBreakerTimeoutSeconds": 30,
"DiscoveryCacheSeconds": 300,
"DiscoveryEndpointTemplate": "/discovery/workflows/domain/instances/{0}/functions/data"
}
}

⚠️ Note: Keep Service Discovery disabled in development environments. Enable it only in production environments.

Reference: #188 - Use Service Discovery Domain to Resolve URLs for Other Domains
Repository: vnext-domain-discovery


2. Default Auto Transition Support

Added support for default transitions when no auto transition conditions are met.

Details:

  • When no auto transition condition is satisfied, a default transition can now be triggered
  • Uses triggerKind: 10 for default auto transition

Configuration:

{
"triggerKind": 10
}

TriggerKind Values:

ValueDescription
0Not applicable
10Default Auto Transition

Reference: #199 - Implement Default Auto Transition for Failed Auto Transition Conditions


3. "Latest" Version Resolution in References

Version references now support "latest" string value for automatic latest version resolution.

Details:

  • Use "version": "latest" to automatically resolve to the newest version
  • Major and Minor version references also resolve to the latest matching version

Examples:

{
"key": "component-123",
"version": "latest"
}
{
"key": "component-123",
"version": "1.1"
}

Reference: #209 - Support "latest" String Value in References for Latest Version Resolution


4. Transition Schema API Endpoint

Added a new API endpoint to fetch transition schema content.

Details:

  • New function definition to retrieve schema content defined on transitions
  • Returns schema content if a transition schema definition exists

Endpoint:

GET /api/v1/{domain}/workflows/{workflow}/instances/{instance}/functions/schema?transitionKey={transition}

Reference: #216 - Add API Endpoint to Fetch Transition Schema


5. Idempotent Workflow Start

Implemented idempotent behavior for workflow start requests with the same key.

Details:

  • When starting a workflow with a key that already exists, the system now returns the existing instance information instead of an error
  • Previous behavior: Returns 409 Conflict (InstanceAlreadyExists) error
  • New behavior: Returns the existing instance's current status and ID

Previous Response (409 Error):

{
"error": "InstanceAlreadyExists",
"message": "An instance with key 'ORDER-123' already exists"
}

New Response (Idempotent):

{
"id": "18075ad5-e5b2-4437-b884-21d733339113",
"status": "A"
}

Benefits:

  • Safe retry scenarios for network failures
  • Clients can retrieve original start response on repeated calls
  • No need for separate "check if exists" calls before starting

Reference: #200 - Implement Idempotent Workflow Start - Return Same Response for Repeated Calls with Same Key


🛠️ Bug Fixes

1. Subflow Extension Invocation Bug

Fixed an issue where extension calls within subflows were not returning correctly.

Problem:

  • When a main flow transitioned to a subflow, the data endpoint only returned main flow data
  • Extensions from subflows were not included in the response

Solution:

  • Data endpoint now returns main flow data and appends subflow extensions to its response

Reference: #250 - Subflow içinde extension çağırımı


2. Logger Initialization in Sequential Tasks

Fixed initialization errors occurring during sequential task execution.

Problem:

  • Logger, Dapr, or Configuration initialization errors occurred during sequential task execution
  • "Logger is not initialized" error in script output handler

Solution:

  • Logger, Dapr, and Configuration initialization is now performed separately for each task in sequential execution

Reference: #265 - Script output handler failed – Logger is not initialized


3. Extension Response Mapping Bug

Fixed response mapping issues in Extension HTTP task requests.

Problem:

  • Response mapping in HTTP task requests within Extensions was not working correctly

Solution:

  • Corrected the response mapping logic for HTTP task requests in Extensions

Reference: #239 - Extension Response Bug


🔥 Hotfixes

1. Publish Component Timeout Fix

Resolved timeout issues for long-running publish component operations.

Problem:

  • Timeout inconsistency in init-service caused publish component requests to fail

Solution:

  • Increased timeout duration to 10 minutes for publish component requests
  • Server timeout configurations updated:
SERVER_TIMEOUT_MS: 1800000 # 30 minutes
SERVER_KEEP_ALIVE_TIMEOUT_MS: 1800000
SERVER_HEADERS_TIMEOUT_MS: 1810000

Reference: #268 - Publish component request times out for long-running operations
Documentation: Server Timeout Configuration


🔄 Improvements

1. Transition Pipeline Locking Refactoring

Refactored transition pipeline locking mechanism to resolve deadlock issues.

Changes:

  • Scope-based lifecycle management for pipeline locking
  • Sync dispatcher support added
  • Local and remote gateway structure implemented
  • Processes within the same domain use local gateway
  • Cross-domain processes use remote gateway

Reference: #256 - Refactor Transition Pipeline Locking to Scope-Based Lifecycle with Sync Dispatcher Support


2. Schema Refactoring

Fixed missing and incorrect schema definitions in vnext-schema repository.

Changes:

  • Corrected missing schema definitions
  • Fixed incorrect schema definitions
  • Synchronized schema validator

Reference: vnext-schema #60 - Schema Refactoring: Fix Missing & Incorrect Definitions, Validator Sync


3. New Makefile Command: change-domain

Added change-domain command to Makefile for quick domain configuration.

Usage:

make change-domain

This command allows you to quickly configure your development environment infrastructure for a specific domain.


🔧 Configuration Updates

Configuration for v0.0.29:

{
"runtimeVersion": "0.0.29",
"schemaVersion": "0.0.29",
"componentVersion": "0.0.18"
}

🧱 Issues Referenced

Features:

Bug Fixes:

Hotfixes:

Improvements:


🧠 Summary

With this release: ✅ Service Discovery for cross-domain communication implemented
✅ Default Auto Transition support added
✅ "Latest" version resolution in references supported
✅ Transition Schema API endpoint added
✅ Idempotent workflow start behavior implemented
✅ Subflow extension invocation bug fixed
✅ Logger initialization in sequential tasks fixed
✅ Extension response mapping corrected
✅ Publish component timeout issues resolved
✅ Transition pipeline locking refactored with gateway support
✅ Schema definitions corrected and synchronized
✅ New change-domain Makefile command added


🔄 Upgrade Path

From v0.0.28 to v0.0.29:

  1. Update Runtime:

    git pull origin master
  2. Update Configuration:

    {
    "runtimeVersion": "0.0.29",
    "schemaVersion": "0.0.29",
    "componentVersion": "0.0.18"
    }
  3. (Optional) Configure Service Discovery: If you want to enable cross-domain communication, add the Service Discovery configuration to your appsettings.json and set up the vnext-domain-discovery runtime.


vNext Runtime Platform Team
January 4, 2026