Changelog
v1.5.0 - July 23, 2025
- Add support for scheduling messages for future delivery. Specify
scheduleExpression
and, optionally,scheduleExpressionTimezone
when publishing messages with Lambda, HTTP URL, or client WebSocket or HTTP. For client requests, the event-levelscheduleBefore
permission claim is required. This feature is backed by Amazon EventBridge Scheduler and allows scheduling one-time message events (recurring schedules are not currently supported in Hotsock). - Server-initiated message publishing requests now return more helpful error info in the HTTP or Lambda response body.
- In addition to publishing messages via the WebSocket, the web console provides interface options for sending standard and raw messages using the client HTTP API.
- The web console now displays a timestamp alongside messages so you can see when each message was sent or received.
- Update all aws-sdk-go-v2 SDK modules to their latest versions (as of 2025-07-22).
v1.4.0 - July 15, 2025
- Add the ability to disable connection count tracking for channel subscriptions with
omitFromSubCount
. This is an optional cost reduction measure for cases where the count of subscribers in a channel changes frequently and tracking that count is unneeded. - Fix an issue where some item remove events were not triggering event bus events.
- Dualstack mode is enabled for the WebSocket API, providing both IPv4 and IPv6 support for client WebSocket connections.
- Build with Go 1.24.5.
- Update all aws-sdk-go-v2 SDK modules to their latest versions (as of 2025-07-15).
v1.3.2 - April 2, 2025
- Work around known bug in API Gateway where
GoneException
is occasionally returned when a connection is still alive. - Build with Go 1.24.2.
- Update all aws-sdk-go-v2 SDK modules to their latest versions (as of 2025-04-02).
v1.3.1 - February 12, 2025
- Fix an issue where the
connectedAt
timestamp on a storedConnectionItem
did not match API Gateway's connection timestamp - it was off by a few milliseconds. These values are now synchronized. - Build with Go 1.24.0.
- Update all aws-sdk-go-v2 SDK modules to their latest versions.
v1.3.0 - October 14, 2024
- Add long-term message storage. Set the
store
parameter for server-initiated message publishes or set thestore
claim for client-initiated messages to an integer number in seconds to specify how long messages should be retained. - Include
connectionSecret
inhotsock.connected
message, which when combined with the connection ID is an API key that can make HTTP requests to the HTTP API to list and publish messages for a channel. - Add
historyStart
claim to specify the timestamp of how far back a connection can query for past messages using the HTTP API. - Reduce the HTTP API timeout from 10 seconds to 5 seconds.
- Add CORS support to the HTTP API.
- Improve performance of the
hotsock.connected
message. Where this message was previously received 300-600ms after the connection was established, it is now received within 30-60ms. - Switch the DynamoDB Streams
FilterCriteria
patterns to use the object type (T
) attribute value to determine if it should be consumed by the stream processor instead of using arbitrary key prefixes/suffixes. - Improve log redaction of API keys and connection secrets.
- Add stream processor metrics that are published from logs using CloudWatch Embedded Metric Format (EMF).
v1.2.0 - September 23, 2024
- Switch from AWS Managed KMS Key to AWS Owned Key for DynamoDB table encryption to avoid cost issues with concurrent UpdateItem calls trigging tons of
kms:Decrypt
operations. A future release can offer KMS/CMK as an explicit opt-in where such costs are acceptable. - Change the main table batch size for DynamoDB Stream processing from 100 to 1000 and add a filter pattern so only specific keys are processed.
- Always use SNS
PublishBatch()
instead of singlePublish()
calls to maximize throughput.
v1.1.0 - August 29, 2024
- Add a "Pre-warm environment" (
PreWarmEnvironmentParameter
) CloudFormation option to keep all time-sensitive, user-facing Lambda functions warm using a one-per-minute scheduled invocation. Designed for staging or demo environments where traffic often drops to zero, but where you don't want noticeable cold starts when usage resumes. - Set
MemorySize: 1769
for the main table stream processor to give it a full vCPU.
v1.0.0 - August 27, 2024
Initial public release! 🎉
Read the launch blog post to learn more.