Changelog
v1.8.3 - October 27, 2025
- Implement the updated authorization model for Lambda Function URLs, which requires that both the
lambda:InvokeFunctionUrlandlambda:InvokeFunctionactions are allowed in function resource policies. New installations require this permissions model in October 2025. Existing installations must update to use this model by November 2026.
v1.8.2 - October 24, 2025
- Fix an issue where function-level errors that cause Lambda functions to exit were being logged as
INFO-level logs instead ofERROR, which would be suppressed whenERROR-level logging was configured. Improve the logged stack trace in cases where a function error is the result of apanic. - Set
MaximumEventAgeInSecondsto120(2 minutes) forConnectedFunctioninvocation async events. In response to the recent AWS outage, there's little chance of meaningful success for events older than a few seconds, so after 2 minutes these events will be dropped on the floor. - Build with Go 1.25.3
- Update all aws-sdk-go-v2 SDK modules to their latest versions (as of 2025-10-24).
v1.8.1 - October 7, 2025
- Build with Go 1.25.2.
- Update all aws-sdk-go-v2 SDK modules to their latest versions (as of 2025-10-07).
v1.8.0 - October 1, 2025
- Add the ability to query stored messages by channel and event name, sorted by timestamp. This data is written to a keys-only global secondary index (GSI).
- Add
ConnectionID,SourceIP,UserAgent, andTriggerattributes to stored messages (and equivalentconnectionId,sourceIp,userAgent, andtriggerto pub-sub event metadata).Triggeris set to one of "client.websocket", "client.http", "server.http", or "server.lambda", depending on what triggered the message. - The built-in CloudWatch Dashboard for all installations has been completely overhauled and now includes version info and links to useful resources. It's also grouped into sections to make it easier to find relevant metrics.
- Update all aws-sdk-go-v2 SDK modules to their latest versions (as of 2025-10-01).
v1.7.0 - September 23, 2025
- Add the ability to specify
autoSubscribein channel claims, which will automatically subscribe specified channels upon a successful connection. - Update all aws-sdk-go-v2 SDK modules to their latest versions (as of 2025-09-22).
v1.6.0 - September 19, 2025
- Allow clients to publish messages to channels where they are not subscribed. Set the
broadcastclaim totruefor messages that are permitted. Supported for both WebSocket and Client HTTP messages. - Stop writing empty
ScheduleExpressionorScheduleExpressionTimezoneattributes to stored messages in DynamoDB. - Build with Go 1.25.1.
- Update all aws-sdk-go-v2 SDK modules to their latest versions (as of 2025-09-19).
v1.5.2 - August 21, 2025
- Build with Go 1.25.0.
- Update all aws-sdk-go-v2 SDK modules to their latest versions (as of 2025-08-21).
v1.5.1 - August 9, 2025
- Build with Go 1.24.6.
- Update all aws-sdk-go-v2 SDK modules to their latest versions (as of 2025-08-08).
v1.5.0 - July 23, 2025
- Add support for scheduling messages for future delivery. Specify
scheduleExpressionand, optionally,scheduleExpressionTimezonewhen publishing messages with Lambda, HTTP URL, or client WebSocket or HTTP. For client requests, the event-levelscheduleBeforepermission 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
GoneExceptionis 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
connectedAttimestamp on a storedConnectionItemdid 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
storeparameter for server-initiated message publishes or set thestoreclaim for client-initiated messages to an integer number in seconds to specify how long messages should be retained. - Include
connectionSecretinhotsock.connectedmessage, 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
historyStartclaim 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.connectedmessage. Where this message was previously received 300-600ms after the connection was established, it is now received within 30-60ms. - Switch the DynamoDB Streams
FilterCriteriapatterns 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:Decryptoperations. 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: 1769for 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.