June 2022 Summaries
3 posts from Knock
Filter
Month:
Year:
Post Summaries
Back to Blog
Knock offers a flexible notifications infrastructure for developers to manage in-app and out-of-app notifications without custom application code. The company focuses on in-app notifications, which are crucial for reducing notification overload and enhancing long-term user retention by providing a centralized place for users to view and act on notifications without switching applications. Knock supports three primary types of in-app notifications: inboxes, feeds, and toasts, each serving different purposes based on the product's needs. The implementation of in-app notifications involves building both front-end and back-end systems to handle user interactions and real-time updates. Knock simplifies this process by offering ready-to-use components and services that integrate real-time inboxes, notification feeds, and toasts, while also allowing orchestration across multiple channels. The service is scalable, reliable, and includes observability tools to monitor system performance, providing a hassle-free solution to manage notifications efficiently.
Jun 16, 2022
1,298 words in the original blog post.
Knock, a notification system, employs LaunchDarkly feature flags to control the runtime behavior of its Elixir application, enhancing reliability and flexibility in handling failures and load spikes. By adopting a circuit breaker pattern integrated with feature flags, Knock can start and stop parts of its application, allowing for graceful degradation and recovery from runtime errors. The use of AWS Kinesis as a data stream, consumed by Broadway consumers, presents challenges when shard consumers crash, leading Knock to implement a Circuit Breaker supervisor that monitors child processes and reacts to feature flag changes. This approach prevents cascading failures, maintains uptime for critical infrastructure, and offers a defense-in-depth strategy without relying solely on traditional methods like autoscaling or Kubernetes management. The system also integrates Telemetry for monitoring and logging, providing real-time insights into process states and alerts for necessary interventions. Knock plans to refine this implementation, potentially open-sourcing the tool for broader use in controlling supervision trees at runtime.
Jun 16, 2022
1,179 words in the original blog post.
Knock offers a flexible notifications infrastructure that allows developers to schedule, batch, and deliver notifications without the need for custom code, enhancing user engagement and retention. The blog post delves into the creation of a batched notification engine, where multiple notifications are combined into a single message within a specific time frame, as opposed to sending individual notifications for each event. It discusses two primary approaches to designing such a system: "batch on write," which accumulates notifications as they occur, and "batch on read," which processes unsent notifications periodically. The post highlights the advantages of the batch on write approach, despite its complexity, for scalability and efficiency. The design involves using a relational database to manage notifications and batches, addressing potential issues like race conditions and retries, and allowing for advanced features such as user-specific batch windows and early batch flushing. Knock provides a comprehensive solution that automates these processes, supporting multiple channels and user preferences, and offers a free tier for users to explore its capabilities.
Jun 01, 2022
1,520 words in the original blog post.