Skip to main content

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-level scheduleBefore 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 stored ConnectionItem 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 the store claim for client-initiated messages to an integer number in seconds to specify how long messages should be retained.
  • Include connectionSecret in hotsock.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 single Publish() 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.