Tibco2Azure

v1.0
Sign In
Automated Migration Tool

Migrate TIBCO BusinessWorks to Azure Functions

Automatically convert your TIBCO BW processes into modern, serverless Azure Functions. Complex workflows become Durable Functions, simple processes become lightweight HTTP Functions.

What Gets Generated

A complete Azure Functions project with all the code and infrastructure you need

DURABLE

Durable Orchestrations

Complex TIBCO processes become Durable Function orchestrators with state management, sub-process calls, and fault tolerance.

SIMPLE

Simple Functions

Lightweight processes become stateless HTTP or Timer Functions. Fast, efficient, and cost-effective.

Activity Functions

TIBCO activities become typed Activity Functions with DI for database, messaging, and HTTP.

Infrastructure as Code

Complete Bicep templates for Azure deployment with all required resources.

Durable vs Simple Functions

The tool automatically analyzes each TIBCO process and chooses the optimal Azure Function type

DURABLE

Durable Functions

Used for long-running workflows that need state persistence between asynchronous operations.

Automatically selected when:
  • Contains Wait/Sleep activities
  • Has async message receive (JMS/RV receive with correlation)
  • Uses async request-reply (JMS/RV patterns)
  • Has transaction confirm activities
SIMPLE

Simple Functions

Used for synchronous operations that complete in a single execution without state persistence.

Includes processes with:
  • CallProcess - compiled as inline method calls
  • Loops - compiled as for/while statements
  • Conditional branches - compiled as if/switch
  • Synchronous HTTP/DB calls
Why this classification?

Durable Functions are only needed when you must persist state between async operations. Most TIBCO patterns compile to standard C# code:

CallProcessmethod call
ForEach/Repeatfor/while loop
XPath branchif/switch

How It Works

Four simple steps to migrate your TIBCO processes to Azure

1

Upload TIBCO Export

Export your TIBCO BusinessWorks project as a ZIP archive and upload it.

2

Select Processes

Review the tree view, see Durable vs Simple assignments, and select which to migrate.

3

Generate Code

Watch in real-time as processes are converted to C# Azure Functions.

4

Deploy to Azure

Download the generated project and deploy using the included Bicep templates.

Technical Specifications

Generated code follows Azure best practices and modern .NET patterns

#Generated Project Structure

ProjectName/
├── Orchestrations/     # Durable orchestrators
├── Activities/         # Activity functions
├── Models/            # Request/Response DTOs
├── Services/          # Database, Messaging
├── Program.cs         # DI configuration
├── host.json          # Functions config
├── local.settings.json
└── infrastructure/
    ├── main.bicep
    ├── parameters.dev.json
    └── parameters.prod.json

#Technology Stack

  • .NET 8Azure Functions v4 with isolated worker process
  • DurableMicrosoft.Azure.Functions.Worker.Extensions.DurableTask
  • SQLMicrosoft.Data.SqlClient + Dapper for data access
  • MessagingAzure.Messaging.ServiceBus for pub/sub patterns
  • BicepInfrastructure as Code for repeatable deployments

Deployment Guide

Follow these steps to deploy your generated Azure Functions project

1

Prerequisites

Install the required tools on your development machine:

# Install .NET 8 SDK
brew install dotnet@8  # macOS

# Install Azure CLI
brew install azure-cli

# Install Azure Functions Core Tools
brew install azure-functions-core-tools@4
2

Configure Local Settings

Update local.settings.json with your connection strings:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
  },
  "ConnectionStrings": {
    "DefaultConnection": "Server=your-server;Database=...",
    "ServiceBus": "Endpoint=sb://your-namespace..."
  }
}
3

Test Locally

Build and run the Functions locally to verify everything works:

# Start Azurite (Azure Storage emulator)
azurite --silent --location /tmp/azurite &

# Build and run
cd YourProject
dotnet build
func start

# Test an orchestration
curl -X POST http://localhost:7071/api/YourProcess \
  -H "Content-Type: application/json" \
  -d '{"ExecutionId": "test-001"}'
4

Deploy Infrastructure

Use the included Bicep templates to provision Azure resources:

# Login to Azure
az login
az account set --subscription "YOUR_SUBSCRIPTION_ID"

# Create resource group
az group create --name rg-yourproject-dev --location westeurope

# Deploy infrastructure
cd infrastructure
az deployment group create \
  --resource-group rg-yourproject-dev \
  --template-file main.bicep \
  --parameters @parameters.dev.json
5

Deploy Application

Publish and deploy your Functions to Azure:

# Build for release
dotnet publish -c Release -o ./publish

# Create deployment package
cd publish && zip -r ../deploy.zip . && cd ..

# Deploy to Function App
az functionapp deployment source config-zip \
  --resource-group rg-yourproject-dev \
  --name yourproject-func \
  --src deploy.zip

TIBCO to Azure Mapping

How TIBCO concepts translate to Azure services

TIBCO ConceptAzure Equivalent
Complex ProcessDurable OrchestrationDURABLE
Simple ProcessHTTP/Timer FunctionSIMPLE
ActivityActivity Function
Timer StarterTimer Trigger
HTTP ReceiverHTTP Trigger
JMS/RV SubscriberService Bus Trigger
JDBC QueryIDatabaseService
AE PublisherIMessageService
Global VariablesApp Settings / Key Vault

Ready to Migrate?

Upload your TIBCO export and get your Azure Functions project in minutes.

Sign In to Start