Release v0.14.0
Dittofeed v0.14.0: Enhanced Performance, New Features, and Improved Developer Experience
Hi all, we're excited to announce Dittofeed v0.14.0! This release includes a log of great stuff for you and your team, including:
- Mechanism to safely retrieve data from your internal API's, and use the data in your journeys.
- A Dittofeed Helm Chart!
- Manual segments, for creating a segment based on a hardcoded list of users.
- Support for Webhook and SMS broadcasts.
- Substantial performance improvements.
- Support for email attachments
Special thanks to our new contributors:
If this project interests you, we'd really appreciate a star on GitHub. You can find our repository at https://github.com/dittofeed/dittofeed.
Release Highlights
New: Helm Chart
We've added a Helm chart for easy installation of Dittofeed on Kubernetes! We're happy to report that several teams are already using it in production.
Read more about the Helm chart in our docs here.
New: Manual Segments
We've added a manual segments feature, allowing users to specify a discrete list of users (via CSV) to belong to a segment. This is particularly useful for messaging users based on criteria represented outside of Dittofeed, such as analysis done in your data warehouse.
Read more about manual segments in our docs here.
New: Email Attachments Support
We've added support for email attachments, allowing users to pass files with track
user events. We've also introduced a File
type user property, enabling file references to be rendered in email templates for attachment sending.
Read more about sending email attachments in our docs here.
Improved: Performance Enhancements
We've made several significant performance improvements in this release. We've upgraded Prisma, which now performs SQL joins by default instead of in-memory joins, yielding substantial performance improvements throughout the application. Additionally, we've upgraded the ClickHouse client, reducing the rate of socket disconnect errors and improving the reliability of our API's write path.
We've also optimized the process assignments step of the compute properties pipeline, substantially improving the speed and memory efficiency of recalculating segments and user properties. Our compute properties durations were reduced by a full 50%!
New: Webhook and SMS Broadcasts
We've added support for webhook and SMS broadcasts, allowing users to send one-off messages to external API's and SMS providers.
New: Random Bucket Segment Type
We've implemented a new random bucket segment type, which is useful for randomly assigning a predetermined percentage of users to one of two paths within a journey. This feature is particularly helpful for testing out new paths within your user journeys, or making one off broadcasts.
Read more about random bucket segments in our docs here.
New: Synchronize Properties Option in Webhook Message Node
We've implemented a "Synchronize Properties" option in webhook message nodes. This option ensures that user properties are re-computed before progressing past the node, which is helpful for calculating user properties based on responses from webhook requests. This feature allows developers to reliably integrate their API's to pull data into their journeys.
Read more about the synchronize properties option in our docs here.
Improved: Segment and User Property Enhancements
We've fixed an edge case where segments conditioned on an event being performed 0 times, or using the less than operator, would sometimes produce invalid results. We've also added support for prefix matches for performed segments and performed user properties, providing more flexibility in defining user segments.
New: Webhook Deliveries Rendering
We've implemented rendering of webhook deliveries on the /dashboard/deliveries
page, allowing webhook payloads to be viewed in the deliveries table.
Improved Webhook Message Tags
We've added support for rendering tags in webhook templates, allowing you to send metadata about the journey and template responsible for sending the webhook to your API. This can be useful for attribution, analytics, and more.
Read more about webhook message tags in our docs here.
{
"config": {
"url": "<https://httpbin.org/post>",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"data": {
"tagValues": {
"workspaceId": "{{ tags.workspaceId }}",
"runId": "{{ tags.runId }}",
"messageId": "{{ tags.messageId }}",
"userId": "{{ tags.userId }}",
"templateId": "{{ tags.templateId }}",
"nodeId": "{{ tags.nodeId }}",
"journeyId": "{{ tags.journeyId }}"
}
}
}
}
Improved: Admin API's
We've improved the admin API's to allow for more flexibility in creating and updating resources. They now extend to creating and updating segments, user properties, and journeys.
Improved: Track Event Autocomplete
We've implemented autocomplete for event names and their properties in the segment editor, user property editor, and journey builder, making it easier and less error prone to edit these resources.
Fixed: Various Improvements and Bug Fixes
We've fixed a race condition in data loading for the settings file, improving the reliability of our settings management. We've also reduced table TTL's, addressing an issue with excessively long TTL's on ClickHouse updated_*
tables, which yields significant space savings.
New: HyperDX Integration
We've added dedicated support for emitting logs to HyperDX with correlated logs and traces. This new feature allows users submitting Dittofeed logs and traces via OpenTelemetry to HyperDX to correlate those signals, providing enhanced visibility into system behavior.
Telemetry
We've added telemetry to Dittofeed. This will allow us to understand how developers are hosting and using Dittofeed. All data collected is totally anonymous.
Emitted signals currently include:
- The current total number of users.
- The current total number of sent messages
If you'd like to disable this telemetry, you can pass the environment variable DITTOFEED_TELEMETRY_DISABLED
.
Wrap Up
Release v0.14.0 brings substantial improvements to Dittofeed. If you're self-hosting Dittofeed, make sure to read our upgrade guide at https://docs.dittofeed.com/deployment/self-hosted/upgrade-guide/v0-14-0.
We're excited to see how our users leverage these new features. As always, we welcome your feedback and contributions to make Dittofeed even better. Until next time!