Skip to content

feat: implement destazureservicebus #437

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Jul 25, 2025
Merged

feat: implement destazureservicebus #437

merged 12 commits into from
Jul 25, 2025

Conversation

alexluong
Copy link
Collaborator

No description provided.

Copy link

vercel bot commented Jul 15, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
outpost-docs ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 21, 2025 3:42pm
outpost-website ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 21, 2025 3:42pm

@@ -0,0 +1,105 @@
# AzureServiceBus Destination configuration
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This document explains my thought process behind the destination config / credentials and also some further configuration we can support.

Comment on lines +16 to +20
const (
TOPIC_NAME = "destination-test"
SUBSCRIPTION_NAME = "destination-test-sub"
CONNECTION_STRING = "Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After provisioning your resources using the document above, you can replace these constants with your real credentials for testing.

$ go run ./cmd/destinations/azureservicebus

You can also run the Azure emulator and test against it locally too.

# to run Azure emulator
$ make up/azure

Comment on lines +20 to +22
type AzureServiceBusDestinationConfig struct {
Name string
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this can potentially be extended further, please check the configuration document for futher information

@alexluong alexluong changed the title feat: implements destazureservicebus feat: implement destazureservicebus Jul 15, 2025
Copy link
Collaborator

@leggetter leggetter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@alexluong - I've QA's and got events delivering to Service Bus a) topic b) queue 👍

just one comment on the configuration options.

Comment on lines +84 to +101
Here are a few notable configuration, especially on the destination level that we may want to support:

- MessageID --> MessageIDTemplate, similar to AWS Kinesis Parition Key approach
- CorrelationID --> CorrelationIDTemplate, similar to AWS Kinesis Parition Key approach
- PartitionKey --> PartitionKeyTemplate, similar to AWS Kinesis Parition Key approach

- ScheduledEnqueueTime
- TimeToLive

The current implementation doesn't support any of these. So when create destination, it's super straightforward:

```golang
type Config struct {
Name string
}
```

If we want to support these, we can either add them to Config, such as `Config.TTL`, or we can also add a suffix like `Config.MessageTTL` to specify that these config would apply to the Message.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@alexluong let's be consistent across destinations.

Let's also be explicit in our naming so it's clear where the configuration is applied.

@leggetter
Copy link
Collaborator

Merging so we can release the feature. Moved suggested improvements into #443

@leggetter leggetter merged commit 9ad180b into main Jul 25, 2025
4 of 5 checks passed
@leggetter leggetter deleted the destazureservicebus branch July 25, 2025 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants