# sse

Published articles for sse.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Compose & kotlinx.html

DevFeed: [Compose & kotlinx.html](<https://devfeed.tech/articles/compose-kotlinx-html-20925.md>)

Original publisher: [Read original article](<https://jakewharton.com/compose-and-kotlinx-html/>)

Published: 2026-08-26T00:00:00Z

Content type: article

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [HTML](<https://devfeed.tech/topics/html.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [ui](<https://devfeed.tech/topics/ui.md>), [client](<https://devfeed.tech/topics/client.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [compose](<https://devfeed.tech/tags/compose.md>), [html](<https://devfeed.tech/tags/html.md>), [sse](<https://devfeed.tech/tags/sse.md>), [ui](<https://devfeed.tech/tags/ui.md>), [web](<https://devfeed.tech/tags/web.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

The article presents an approach for keeping server-rendered HTML admin pages fresh without abandoning static HTML. It uses Molecule on the JVM to observe state, kotlinx.html to render HTML fragments, Ktor to stream updates over WebSockets, and client-side JavaScript with Idiomorph to patch the DOM. It also discusses using server-sent events for unidirectional updates and the scalability tradeoffs of long-lived connections.

### Source excerpt

Let's render a simple page with Ktor server and kotlinx.html: get("/users.html") { call.respondHtml { myLayout(title = "Users") { userList( users = db.users.value, ) } } } A reusable myLayout provides scaffolding, userList encapsulates the specific page content, and db.users is a StateFlow<List<User>> from the persistence layer. I've been doing this over and over to create admin dashboard pages for a project. It works great right up until you leave it open for a minute or two, and its content becomes stale. Client-side frameworks exist within the ecosystem to "solve" this, such as Compose for HTML or Compose UI for Web. If your house has a leaky pipe you can also "solve" that by moving to a new house. I simply will not bring myself to abandoning HTML let alone delivery of static HTML in the response. Efforts are underway to adapt Compose for HTML for so-called isomorphic rendering. This would involve performing the initial composition on the server to produce the static HTML for the HTTP response. Then, client side as JS, mounting the same rendering code to reproduce the DOM tree and incrementally update it for future state changes. Tomorrow's Compose today Instead of waiting, I brought my own Compose on the JVM from home in the form of Molecule. Instead of managing a UI tree over time, Molecule manages a single piece of state over time. We can use that to render an HTML fragment on the server as a string, and then stream that to the client. webSocket("/users.ws") { launchMolecule(Immediate) { val users by db.users.collectAsState() createHTML().userList( users = users, ) }.collect(::send) } That's it. Ktor gives us the webSocket, Molecule runs the StateFlow<String> which is piped into it, and kotlinx.html renders the HTML fragment of our existing content function. In the initial HTML payload you need to wire this up somehow. Something like: script { unsafe { +""" |const content = document.getElementById("content"); |const socket = new WebSocket("ws://" + location.ho

## Diagnosing a 28,232-Connection SSE Limit in a Go Leaderboard

DevFeed: [Diagnosing a 28,232-Connection SSE Limit in a Go Leaderboard](<https://devfeed.tech/articles/breaking-the-28k-sse-connection-limit-and-scaling-toward-1m-39412.md>)

Original publisher: [Read original article](<https://blog.pranshu-raj.in/posts/scaling-sse-1m-connections/>)

Author: Pranshu Raj

Published: 2026-07-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Pranshu Raj - blog on backend systems, performance and sidequests](<https://devfeed.tech/sources/pranshu-raj-blog-on-backend-systems-performance-and-sidequests.md>)

Topics: [Server-sent events (SSE)](<https://devfeed.tech/topics/server-sent-events-sse.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [Grafana](<https://devfeed.tech/topics/grafana.md>), [Prometheus](<https://devfeed.tech/topics/prometheus.md>)

Tags: [docker-compose](<https://devfeed.tech/tags/docker-compose.md>), [go](<https://devfeed.tech/tags/go.md>), [grafana](<https://devfeed.tech/tags/grafana.md>), [prometheus](<https://devfeed.tech/tags/prometheus.md>), [redis](<https://devfeed.tech/tags/redis.md>), [sse](<https://devfeed.tech/tags/sse.md>)

### AI overview

A tutorial on testing and diagnosing the SSE connection limit of a Go leaderboard service. It describes the service architecture, Docker Compose deployment, and monitoring with Prometheus and Grafana.

### Source excerpt

Why my Go leaderboard's capped at exactly 28,232 SSE connections, how Docker networking got me to 150k, and the path toward millions.

## Broadcasting to 28K SSE Clients (and learning about Go channels)

DevFeed: [Broadcasting to 28K SSE Clients (and learning about Go channels)](<https://devfeed.tech/articles/broadcasting-to-28k-sse-clients-and-learning-about-go-channels-39405.md>)

Original publisher: [Read original article](<https://blog.pranshu-raj.in/posts/implementing-correct-fanout/>)

Author: Pranshu Raj

Published: 2026-07-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Pranshu Raj - blog on backend systems, performance and sidequests](<https://devfeed.tech/sources/pranshu-raj-blog-on-backend-systems-performance-and-sidequests.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Server-sent events (SSE)](<https://devfeed.tech/topics/server-sent-events-sse.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [backpressure](<https://devfeed.tech/topics/backpressure.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [Grafana](<https://devfeed.tech/topics/grafana.md>), [Prometheus](<https://devfeed.tech/topics/prometheus.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [backpressure](<https://devfeed.tech/tags/backpressure.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [go](<https://devfeed.tech/tags/go.md>), [grafana](<https://devfeed.tech/tags/grafana.md>), [observability](<https://devfeed.tech/tags/observability.md>), [prometheus](<https://devfeed.tech/tags/prometheus.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [redis](<https://devfeed.tech/tags/redis.md>), [sse](<https://devfeed.tech/tags/sse.md>)

### AI overview

The article describes building a real-time leaderboard in Go that reached 28,232 concurrent SSE connections before exposing a broken broadcast design. It explains the fix using centralized polling, deduplication, fan-out, backpressure handling, and observability with Prometheus and Grafana.

### Source excerpt

A post on progressively getting my server to 28k SSE connections, finding a bug in my implementation of fan out using Go channels and the resulting mental model update.

## Ubuntu variant optimized with x86-64-v3

DevFeed: [Ubuntu variant optimized with x86-64-v3](<https://devfeed.tech/articles/ubuntu-variant-optimized-with-x86-64-v3-27746.md>)

Original publisher: [Read original article](<https://gagor.pro/2026/04/ubuntu-variant-optimized-with-x86-64-v3/>)

Author: Tom

Published: 2026-04-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [amd64v3](<https://devfeed.tech/tags/amd64v3.md>), [apt-configuration](<https://devfeed.tech/tags/apt-configuration.md>), [avx](<https://devfeed.tech/tags/avx.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [cpu-optimization](<https://devfeed.tech/tags/cpu-optimization.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [sse](<https://devfeed.tech/tags/sse.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>), [ubuntu-25-10](<https://devfeed.tech/tags/ubuntu-25-10.md>), [ubuntu-26-04](<https://devfeed.tech/tags/ubuntu-26-04.md>), [x86-64](<https://devfeed.tech/tags/x86-64.md>), [x86-64-v3](<https://devfeed.tech/tags/x86-64-v3.md>)

### AI overview

This tutorial explains Ubuntu's x86-64-v3 optimized package variant, including its rationale, compatibility considerations, and availability for testing in Ubuntu 25.10. It also discusses plans to extend the approach to Ubuntu 26.04 LTS.

### Source excerpt

Explore how to enable and use the x86-64-v3 optimized Ubuntu variant for better performance on modern hardware without sacrificing stability.

## Closing SSE Connections: A Browser Compatibility Deep Dive

DevFeed: [Closing SSE Connections: A Browser Compatibility Deep Dive](<https://devfeed.tech/articles/closing-sse-connections-a-browser-compatibility-deep-dive-37520.md>)

Original publisher: [Read original article](<https://blog.apartment304.com/sse-close-connection/>)

Author: James Heller

Published: 2025-11-20T19:00:00Z

Content type: tutorial

Language: en

Sources: [Apartment 304](<https://devfeed.tech/sources/apartment-304.md>)

Topics: [Server-sent events (SSE)](<https://devfeed.tech/topics/server-sent-events-sse.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [htmx](<https://devfeed.tech/topics/htmx.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Firefox](<https://devfeed.tech/topics/firefox.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>)

Tags: [ajax](<https://devfeed.tech/tags/ajax.md>), [apartment-304](<https://devfeed.tech/tags/apartment-304.md>), [browser](<https://devfeed.tech/tags/browser.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [custom-software-solutions](<https://devfeed.tech/tags/custom-software-solutions.md>), [devops](<https://devfeed.tech/tags/devops.md>), [devops-engineer](<https://devfeed.tech/tags/devops-engineer.md>), [htmx](<https://devfeed.tech/tags/htmx.md>), [http](<https://devfeed.tech/tags/http.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [issue](<https://devfeed.tech/tags/issue.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [multiplayer](<https://devfeed.tech/tags/multiplayer.md>), [software-architecture](<https://devfeed.tech/tags/software-architecture.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [software-engineer](<https://devfeed.tech/tags/software-engineer.md>), [sse](<https://devfeed.tech/tags/sse.md>)

### AI overview

This tutorial explains how Server-Sent Events connections can remain open inconsistently across browsers when users navigate away. Using the multiplayer mystery game Whodunit with HTMX as an example, it describes SSE connection tracking and a client-side JavaScript approach for robust cleanup.

### Source excerpt

When browsers leave connections dangling, your app can get stuck waiting for users who are already gone. Let's solve the mystery of closing SSE connections.

## Scaling Server Sent Events - Intro to SSE and scaling guide

DevFeed: [Scaling Server Sent Events - Intro to SSE and scaling guide](<https://devfeed.tech/articles/scaling-server-sent-events-intro-to-sse-and-scaling-guide-39403.md>)

Original publisher: [Read original article](<https://blog.pranshu-raj.in/posts/exploring-sse/>)

Author: Pranshu Raj

Published: 2025-06-29T07:01:27Z

Content type: tutorial

Language: en

Sources: [Pranshu Raj - blog on backend systems, performance and sidequests](<https://devfeed.tech/sources/pranshu-raj-blog-on-backend-systems-performance-and-sidequests.md>)

Topics: [Server-sent events (SSE)](<https://devfeed.tech/topics/server-sent-events-sse.md>), [scaling](<https://devfeed.tech/topics/scaling.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>)

Tags: [guide](<https://devfeed.tech/tags/guide.md>), [scaling](<https://devfeed.tech/tags/scaling.md>), [sse](<https://devfeed.tech/tags/sse.md>)

### AI overview

A tutorial on Server-Sent Events (SSE), covering its HTTP-based server-to-client update model, event-stream format, browser EventSource support, and considerations for horizontal scaling and state handling.

### Source excerpt

Understanding SSE and it's use cases, advantages over other realtime protocols, how to deploy it at scale.

## What are MCP Servers?

DevFeed: [What are MCP Servers?](<https://devfeed.tech/articles/what-are-mcp-servers-1711.md>)

Original publisher: [Read original article](<https://fly.io/blog/mcps-everywhere/>)

Published: 2025-06-12T00:00:00Z

Content type: article

Language: en

Sources: [The Fly Blog](<https://devfeed.tech/sources/the-fly-blog.md>)

Topics: [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [Model Context Protocol (MCP)](<https://devfeed.tech/topics/model-context-protocol-mcp.md>), [API](<https://devfeed.tech/topics/api.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [browser](<https://devfeed.tech/topics/browser.md>), [cursor](<https://devfeed.tech/topics/cursor.md>), [Visual Studio Code](<https://devfeed.tech/topics/visual-studio-code.md>), [fly.io](<https://devfeed.tech/topics/fly-io.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cdn](<https://devfeed.tech/tags/cdn.md>), [close-to-users](<https://devfeed.tech/tags/close-to-users.md>), [cursor](<https://devfeed.tech/tags/cursor.md>), [deploy-app-servers](<https://devfeed.tech/tags/deploy-app-servers.md>), [docker](<https://devfeed.tech/tags/docker.md>), [elixir](<https://devfeed.tech/tags/elixir.md>), [fly](<https://devfeed.tech/tags/fly.md>), [fly-io](<https://devfeed.tech/tags/fly-io.md>), [heroku-alternative](<https://devfeed.tech/tags/heroku-alternative.md>), [heroku-competitor](<https://devfeed.tech/tags/heroku-competitor.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [http](<https://devfeed.tech/tags/http.md>), [i](<https://devfeed.tech/tags/i.md>), [llm](<https://devfeed.tech/tags/llm.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [model-context-protocol](<https://devfeed.tech/tags/model-context-protocol.md>), [networking](<https://devfeed.tech/tags/networking.md>), [postgresql-clusters](<https://devfeed.tech/tags/postgresql-clusters.md>), [servers](<https://devfeed.tech/tags/servers.md>), [sse](<https://devfeed.tech/tags/sse.md>), [vscode](<https://devfeed.tech/tags/vscode.md>)

### AI overview

This article explains Model Context Protocol (MCP) through analogies to USB-C, Alexa Skills, and API 2.0. It describes how MCP connects AI models to data sources and tools, supports multiplexing and server push, and provides introspection about available tools and their arguments.

### Source excerpt

With Fly.io, you can get your app running globally in a matter of minutes, and with MCP servers you can integrate with Claude, VSCode, Cursor and many more AI clients. Try it out for yourself! The introduction to Model Context Protocol starts out with: MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools. That paragraph, to me, is both comforting ("USB for LLM"? Cool! Got it!), and simultaneously vacuous (Um, but what do I actually do with this?). I've been digging deeper and have come up with a few more analogies and observations that make sense to me. Perhaps one or more of these will help you. MCPs are Alexa Skills You buy an Echo Dot and a Hue light. You plug them both in and connect them to your Wi-Fi. There is one more step you need to do: you need to install and enable the Philips Hue skill to connect the two. Now you might be using Siri or Google Assistant. Or you may want to connect a Ring Doorbell camera or Google Nest Thermostat. But the principle is the same, though the analogy is slightly stronger with a skill (which is a noun) as opposed to the action of pairing your Hue Bridge with Apple HomeKit (a verb). MCPs are API 2.0 HTTP 1.1 is simple. You send a request, you get a response. While there are cookies and sessions, it is pretty much stateless and therefore inefficient, as each request needs to establish a new connection. WebSockets and Server-Sent Events (SSE) mitigate this a bit. HTTP 2.0 introduces features like multiplexing and server push. When you visit a web page for the first time, your browser can now request all of the associated JavaScript, CSS, and images at once, and the server can respond in any order. APIs today are typically request/response. MCPs support multi

## Streaming LLM Responses with Rails: SSE vs. Turbo Streams

DevFeed: [Streaming LLM Responses with Rails: SSE vs. Turbo Streams](<https://devfeed.tech/articles/streaming-llm-responses-with-rails-sse-vs-turbo-streams-33533.md>)

Original publisher: [Read original article](<https://www.aha.io/engineering/articles/streaming-llm-responses-rails-sse-turbo-streams>)

Published: 2025-04-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Aha! Engineering Blog](<https://devfeed.tech/sources/aha-engineering-blog.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>)

Tags: [llm](<https://devfeed.tech/tags/llm.md>), [rails](<https://devfeed.tech/tags/rails.md>), [sse](<https://devfeed.tech/tags/sse.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [turbo](<https://devfeed.tech/tags/turbo.md>)

### AI overview

A tutorial on streaming large language model responses in Rails applications. It compares server-sent events and Turbo Streams, explains how SSE connections and events work, and discusses implementation approaches for a demo chat application.

### Source excerpt

In the world of Rails development, integrating large language models (LLMs) like OpenAI's GPT has become increasingly common. One challenge developers face is streaming these responses efficiently to provide a smooth user experience. This post will

## Bringing MCP to the Cloud

DevFeed: [Bringing MCP to the Cloud](<https://devfeed.tech/articles/bringing-mcp-to-the-cloud-5057.md>)

Original publisher: [Read original article](<https://neon.com/blog/bringing-mcp-to-the-cloud>)

Author: Shridhar Deshmukh

Published: 2025-04-11T18:01:05Z

Content type: tutorial

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [MCP Server](<https://devfeed.tech/topics/mcp-server.md>), [Model Context Protocol (MCP)](<https://devfeed.tech/topics/model-context-protocol-mcp.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [OAuth](<https://devfeed.tech/topics/oauth.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Language models](<https://devfeed.tech/topics/language-models.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [http](<https://devfeed.tech/tags/http.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mcp-server](<https://devfeed.tech/tags/mcp-server.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [product](<https://devfeed.tech/tags/product.md>), [remote-mcp-server](<https://devfeed.tech/tags/remote-mcp-server.md>), [security](<https://devfeed.tech/tags/security.md>), [sse](<https://devfeed.tech/tags/sse.md>)

### AI overview

This implementation-focused article explains Neon's remote MCP server, which lets LLMs and AI agents interact with Neon's Postgres platform through structured tools and natural-language commands. It describes the shift from a locally installed, API-key-authenticated server to a remote architecture using HTTP, Server-Sent Events, and OAuth 2.1, motivated by easier installation and upgrades and more secure authentication.

### Source excerpt

We recently released Neon's remote MCP server. In this post, we'll dive deep into how we implemented Neon's remote MCP server. We'll explore using Server-Sent Events (SSE) for communication and integrating OAuth 2.1 for authentication. So let's dive in. Note: If you'd rather watc...

## Underrust: How does u128 work on a 64-bit processor?

DevFeed: [Underrust: How does u128 work on a 64-bit processor?](<https://devfeed.tech/articles/underrust-how-does-u128-work-on-a-64-bit-processor-35481.md>)

Original publisher: [Read original article](<https://darkcoding.net/software/underrust-u128/>)

Author: Graham King

Published: 2025-04-05T20:45:00Z

Content type: tutorial

Language: en

Sources: [Graham King](<https://devfeed.tech/sources/graham-king.md>)

Topics: [cpu](<https://devfeed.tech/topics/cpu.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [processors](<https://devfeed.tech/tags/processors.md>), [rust](<https://devfeed.tech/tags/rust.md>), [simd](<https://devfeed.tech/tags/simd.md>), [software](<https://devfeed.tech/tags/software.md>), [sse](<https://devfeed.tech/tags/sse.md>), [underrust](<https://devfeed.tech/tags/underrust.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

The article explains how Rust u128 values work on x86-64 processors whose general-purpose registers are limited to 64 bits. It describes splitting values across two registers and distinguishes this from the use of 128-bit SSE registers for SIMD operations.

### Source excerpt

Wherein our hero learns the arcane secrets of the u128 sword in the depths of the Underrust.

## Marriott Deploys Cisco Umbrella DNS-Layer Security Across Nearly 5,000 Properties to Block Access to CSAM

DevFeed: [Marriott Deploys Cisco Umbrella DNS-Layer Security Across Nearly 5,000 Properties to Block Access to CSAM](<https://devfeed.tech/articles/marriott-leads-the-way-in-the-fight-to-protect-children-online-20377.md>)

Original publisher: [Read original article](<https://umbrella.cisco.com/blog/marriott-leads-way-in-fight-to-protect-children-online>)

Author: Negisa Taymourian

Published: 2024-03-12T08:00:00Z

Content type: article

Language: en

Sources: [OpenDNS](<https://devfeed.tech/sources/opendns.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [Cisco](<https://devfeed.tech/topics/cisco.md>), [Security & compliance, Cloud security](<https://devfeed.tech/topics/security-compliance-cloud-security.md>)

Tags: [cisco](<https://devfeed.tech/tags/cisco.md>), [cisco-talos](<https://devfeed.tech/tags/cisco-talos.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-security](<https://devfeed.tech/tags/cloud-security.md>), [customer-focus](<https://devfeed.tech/tags/customer-focus.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [dns](<https://devfeed.tech/tags/dns.md>), [dns-layer-security](<https://devfeed.tech/tags/dns-layer-security.md>), [dns-security](<https://devfeed.tech/tags/dns-security.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [security](<https://devfeed.tech/tags/security.md>), [security-service-edge](<https://devfeed.tech/tags/security-service-edge.md>), [sse](<https://devfeed.tech/tags/sse.md>), [threat-intelligence](<https://devfeed.tech/tags/threat-intelligence.md>)

### AI overview

The article describes Marriott's deployment of Cisco Umbrella DNS-layer security across nearly 5,000 properties to block access to child sexual abuse materials and other malicious or unwanted domains. It highlights deployment speed, scalability, guest-network performance, manageability, and Cisco Talos threat intelligence.

### Source excerpt

Marriott has rapidly deployed Cisco DNS-layer security across thousands of properties to advance human rights by limiting access to CSAM materials. The post Marriott Leads the Way in the Fight to Protect Children Online appeared first on Cisco Umbrella.

## Cisco Umbrella Announces Migration from Umbrella Roaming Client to Cisco Secure Client

DevFeed: [Cisco Umbrella Announces Migration from Umbrella Roaming Client to Cisco Secure Client](<https://devfeed.tech/articles/your-free-upgrade-to-cisco-secure-client-awaits-20382.md>)

Original publisher: [Read original article](<https://umbrella.cisco.com/blog/your-free-upgrade-to-cisco-secure-client-awaits>)

Author: Negisa Taymourian

Published: 2024-02-15T09:00:00Z

Content type: release

Language: en

Sources: [OpenDNS](<https://devfeed.tech/sources/opendns.md>)

Topics: [Cisco](<https://devfeed.tech/topics/cisco.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Security & compliance, Cloud security](<https://devfeed.tech/topics/security-compliance-cloud-security.md>), [Security](<https://devfeed.tech/topics/security.md>), [Cisco Secure Access](<https://devfeed.tech/topics/cisco-secure-access.md>)

Tags: [cisco](<https://devfeed.tech/tags/cisco.md>), [cisco-secure-access](<https://devfeed.tech/tags/cisco-secure-access.md>), [cisco-secure-client](<https://devfeed.tech/tags/cisco-secure-client.md>), [cloud-security](<https://devfeed.tech/tags/cloud-security.md>), [dns-layer-security](<https://devfeed.tech/tags/dns-layer-security.md>), [end-of-life](<https://devfeed.tech/tags/end-of-life.md>), [migration](<https://devfeed.tech/tags/migration.md>), [products-services](<https://devfeed.tech/tags/products-services.md>), [secure-web-gateway](<https://devfeed.tech/tags/secure-web-gateway.md>), [security](<https://devfeed.tech/tags/security.md>), [security-service-edge](<https://devfeed.tech/tags/security-service-edge.md>), [sse](<https://devfeed.tech/tags/sse.md>), [umbrella-roaming-client](<https://devfeed.tech/tags/umbrella-roaming-client.md>), [vpn](<https://devfeed.tech/tags/vpn.md>), [ztna](<https://devfeed.tech/tags/ztna.md>)

### AI overview

Cisco Umbrella recommends that customers migrate from the standalone Umbrella Roaming Client to Cisco Secure Client, which includes the Umbrella Roaming Security Module and additional security capabilities. Eligible customers can migrate at no charge, while the existing client is scheduled to reach end of life with support ending April 2, 2025.

### Source excerpt

More than ever modern cybersecurity leaders need to strengthen their protection for their remote users with advanced cloud security. Cisco Umbrella provides always-on security on and off the corporate network. If you're an existing Cisco Umbrella customer, you're already familiar with the robust protection it provides. We are excited to announce updates to our roaming [...] The post Your Free Upgrade to Cisco Secure Client Awaits appeared first on Cisco Umbrella.

## Using Server Sent Events to Simplify Real-time Streaming at Scale

DevFeed: [Using Server Sent Events to Simplify Real-time Streaming at Scale](<https://devfeed.tech/articles/using-server-sent-events-to-simplify-real-time-streaming-at-scale-1571.md>)

Original publisher: [Read original article](<https://shopify.engineering/server-sent-events-data-streaming>)

Author: Bao Nguyen

Published: 2022-11-30T14:00:04Z

Content type: tutorial

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [real-time](<https://devfeed.tech/topics/real-time.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Data visualization](<https://devfeed.tech/topics/data-visualization.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [nginx](<https://devfeed.tech/topics/nginx.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [data-visualization](<https://devfeed.tech/tags/data-visualization.md>), [golang](<https://devfeed.tech/tags/golang.md>), [http](<https://devfeed.tech/tags/http.md>), [latency](<https://devfeed.tech/tags/latency.md>), [nginx](<https://devfeed.tech/tags/nginx.md>), [performance](<https://devfeed.tech/tags/performance.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [scale](<https://devfeed.tech/tags/scale.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [sse](<https://devfeed.tech/tags/sse.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

This article explains how Shopify used Server-Sent Events (SSE) to simplify the architecture of its BFCM Live Map, a real-time data visualization product. It compares push, polling, and long-polling communication models, then describes implementing a scalable, Nginx-load-balanced SSE server in Golang to improve performance and data latency.

### Source excerpt

We walk through how we implemented an SSE server that's scalable and load-balanced to simplify and improve a real-time data visualization application.

## Introducing OkSSE -- Kotlin Multiplatform SSE library

DevFeed: [Introducing OkSSE -- Kotlin Multiplatform SSE library](<https://devfeed.tech/articles/introducing-oksse-kotlin-multiplatform-sse-library-24568.md>)

Original publisher: [Read original article](<https://medium.com/bleeding-edge/introducing-oksse-kotlin-multiplatform-sse-library-7e6e804c885b?source=rss----d8ebe85cdc0f---4>)

Author: Akshay Chordiya

Published: 2020-08-31T11:08:59Z

Content type: tutorial

Language: en

Sources: [Bleeding Edge - Medium](<https://devfeed.tech/sources/bleeding-edge-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Library](<https://devfeed.tech/topics/library.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [HTTP](<https://devfeed.tech/topics/http.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [library](<https://devfeed.tech/tags/library.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [server-sent-events](<https://devfeed.tech/tags/server-sent-events.md>), [sse](<https://devfeed.tech/tags/sse.md>)

### AI overview

OkSSE is an open-source Kotlin Multiplatform client library for Server-Sent Events (SSE). The article explains why Clue built it for a backend-driven UI, describes SSE's unidirectional HTTP data stream, and outlines the library's intended use.

### Source excerpt

Introducing OkSSE -- Kotlin Multiplatform SSE librarySharing is caring -- Illustration by Marta Pucci At Clue, we always want to keep finding new solutions as challenges arise. Recently, we needed to build a dynamic UI driven via backend which motivated the entire team 💪🏻 and eventually led to the development of OkSSE library. And today, I'm super excited 🎉 to share OkSSE -- an open source Server sent events client library made with Kotlin multiplatform and Coroutine for the tech community to use and build their amazing use-cases. OkSSE is a client for Server Sent events protocol written in Kotlin Multiplatform. The implementation is written according to W3C Recommendation 03 February 2015 specification 📝 OkSSE is an SSE client that's modern, efficient and provides an easy-to-use API. The aim of this article is to: walk you through our journey 🛣 of why we set out to use SSE protocol, explain why we decided to build our own library, and share how you can use the library for your use-cases Backstory We started with an idea 💡to have a backend driven UI and build an infrastructure for it. That's where we decided to use SSE [Server Sent Events] protocol to talk with the mobile clients [Android & iOS] in order to continuously stream 🌊 the data from the backend to render the UI on clients. Check out the talk below if you are interested in learning more about how we used SSE for Backend Driven UI: https://medium.com/media/3fb46f5e9db8ea9e4fc9a834c19e2d03/hrefWhat's SSE?Server-sent events (SSE) is a server push technology enabling a browser to receive automatic updates from a server via HTTP connection -- Wikipedia In a nutshell 🥜, SSE is built on top of well known HTTP and establishes a unidirectional connection from server -> client. The server continuously pushes data downstream ⬇, which clients can stream until the app or tab [for web] is closed. Reinvent the wheel 🎡 With backend driven UI in mind, both of our client teams (i.e Android and iOS) started searching for the bes

## Bitsliced SipHash

DevFeed: [Bitsliced SipHash](<https://devfeed.tech/articles/bitsliced-siphash-38922.md>)

Original publisher: [Read original article](<https://idea.popcount.org/2013-01-30-bitsliced-siphash>)

Author: Marek

Published: 2013-01-29T23:00:00Z

Content type: tutorial

Language: en

Sources: [Marek Majkowski](<https://devfeed.tech/sources/marek-majkowski.md>)

Topics: [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [parallel](<https://devfeed.tech/topics/parallel.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [C](<https://devfeed.tech/topics/c.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [c](<https://devfeed.tech/tags/c.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [cycles](<https://devfeed.tech/tags/cycles.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [matrix](<https://devfeed.tech/tags/matrix.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [simd](<https://devfeed.tech/tags/simd.md>), [speed](<https://devfeed.tech/tags/speed.md>), [sse](<https://devfeed.tech/tags/sse.md>)

### AI overview

This article explains bitslicing through a SipHash implementation. It describes rewriting an algorithm as simple bit-level logical operations applied to wide SIMD vectors, which can reduce repeated parallel computations. It also discusses the substantial cost of transposing input and output bit matrices.

### Source excerpt

Bitsliced SipHash Few days ago I presented a Python and a C implementation of SipHash. This time for no reason whatsoever I implemented a bitsliced version of it. Bitslicing a crypto algorithm is usually done to speed it up when doing massively parallel operations. For example when trying to find a collision with brute force. Bitsliced implementation is only useful if you have a large number of exactly the same mathematical operations to be computed in parallel.