Fanout | BlogBlog for all things Fanout.2022-03-30T13:13:43+00:00http://blog.fanout.io/feed/atom/JekylljustinWe've been acquired by Fastlyhttp://blog.fanout.io/?20262022-03-30T13:12:00+00:002022-03-30T13:12:00+00:00<p>I’m excited to share that Fanout is now part of Fastly! Over the coming months we’ll be rolling out our realtime/push capabilities onto their global network.</p>
<p>See also <a href="https://www.fastly.com/blog/fastly-fanout-why-real-time-messaging-and-edge-computing-are-an-amazing-combination">Fastly’s announcement</a>.</p>
<p>...</p>justinA cloud-native platform for push APIshttp://blog.fanout.io/?20252021-04-27T03:30:00+00:002021-04-27T03:30:00+00:00<p>Today we are excited to announce <a href="https://fanout.io/enterprise/">Fanout Platform</a>!</p>
<p>Fanout Platform is infrastructure software for building HTTP streaming and WebSocket APIs. It is comprised of our open source project, <a href="https://github.com/fanout/pushpin/">Pushpin</a>, along with special add-ons for scaling. Helm charts are available for installation on Kubernetes.</p>
<p>Here’s a short video that shows how easy it is to upgrade from Pushpin to Fanout Platform:</p>
<div class="flex-video widescreen">
<iframe width="640" height="480" src="https://www.youtube.com/embed/UfhsO38w98Y" frameborder="0" allowfullscreen=""></iframe>
</div>
<p>Read on to learn about why we are doing this, and how it works.</p>
<p>...</p>justinVercel and WebSocketshttp://blog.fanout.io/?20242020-09-21T21:26:00+00:002020-09-21T21:26:00+00:00<p><a href="https://vercel.com">Vercel</a> makes it easy to deploy and scale HTTP APIs using <a href="https://vercel.com/docs/serverless-functions/introduction">Serverless Functions</a>. However, it’s not possible to use serverless functions to host WebSocket APIs. Does this mean you need to give up on your hopes and dreams and set up normal servers to handle your WebSockets? No way! Vercel can be combined with <a href="https://fanout.io/cloud/">Fanout Cloud</a> to handle WebSocket connections without having to literally host them.</p>
<p><img src="/assets/fanout-vercel.png" alt="fanout-vercel" /></p>
<p>By using Vercel and Fanout Cloud together, API logic can be kept in one place. Fanout Cloud can manage the WebSocket connections, and invoke functions whenever there is client activity. What’s great about this approach is there’s nothing extra to deploy, and it works at high scale too.</p>
<p>...</p>justinRewriting Pushpin's connection manager in Rusthttp://blog.fanout.io/?20232020-08-11T21:49:00+00:002020-08-11T21:49:00+00:00<p>For over 7 years, <a href="https://pushpin.org">Pushpin</a> used <a href="https://mongrel2.org">Mongrel2</a> for managing HTTP and WebSocket client connections. Mongrel2 served us well during that time, requiring little maintenance. However, we are now in the process of replacing it with a new project, <a href="https://github.com/fanout/condure">Condure</a>. In this article we’ll discuss how and why Condure was developed.</p>
<p>...</p>justinLet's Encrypt for custom domainshttp://blog.fanout.io/?20222019-09-23T03:21:00+00:002019-09-23T03:21:00+00:00<p>Today we announce support for free and automatic SSL certificates provided by <a href="https://letsencrypt.org/">Let’s Encrypt</a> in <a href="https://fanout.io/cloud/">Fanout Cloud</a>. To use this feature, simply edit your custom domain in the Fanout control panel and enable “Use Let’s Encrypt for SSL”. Assuming you have a proper CNAME record set up for your custom domain, a certificate will be created and installed within a few minutes.</p>
<p>...</p>justinLong-lived connections in a serverless worldhttp://blog.fanout.io/?20212019-02-15T06:30:00+00:002019-02-15T06:30:00+00:00<p>In serverless architectures, application logic is often powered by short-lived execution environments. But what does this mean for long-lived connections? After all, many applications today depend on persistent WebSocket or SSE connections in order to exchange data in realtime.</p>
<p><img src="/assets/serverless.png" alt="serverless" /></p>
<p>The answer is unsurprising: either the execution limitations must be tolerated, or long-lived connections must be handled by a separate component. We’ll go over these approaches below.</p>
<p>...</p>justinGoodbye, XMPPhttp://blog.fanout.io/?20202018-05-18T02:52:00+00:002018-05-18T02:52:00+00:00<p>Today we removed support for <a href="https://xmpp.org/">XMPP</a> in Fanout Cloud.</p>
<p>Fanout’s XMPP functionality simply didn’t garner the adoption we were hoping for. It was never used at scale, and was mainly relegated to chat bots that needed compatibility with Google Talk. However, as Google phased out XMPP federation, such usefulness dwindled.</p>
<p>...</p>danielThe Edge is Nothing Without the Foghttp://blog.fanout.io/?20192018-01-04T14:40:00+00:002018-01-04T14:40:00+00:00<p>Edge computing is hot right now. The growing maturity of IoT networks ranging from industrial to VR applications means that there’s an enormous amount of discussion around moving from the cloud to the edge <a href="http://blog.fanout.io/2017/09/06/realtime-processing-and-edge-computing/">(from us as well)</a>. But edge computing is only the first step.</p>
<p>...</p>justinWebSockets with AWS Lambdahttp://blog.fanout.io/?20182017-12-15T01:02:00+00:002017-12-15T01:02:00+00:00<p><a href="https://fanout.io/">Fanout Cloud</a> handles long-lived connections, such as HTTP streaming and WebSocket connections, on behalf of API backends. For projects that need to push data at scale, this can be a smart architecture. It also happens to be handy with function-as-a-service backends, such as <a href="https://aws.amazon.com/lambda/">AWS Lambda</a>, which are not designed to handle long-lived connections on their own. By combining Fanout Cloud and Lambda, you can build serverless realtime applications.</p>
<p><img src="/assets/fanout-lambda.png" alt="fanout-lambda" /></p>
<p>Of course, Lambda can integrate with services such as <a href="https://aws.amazon.com/iot/">AWS IoT</a> to achieve a similar effect. The difference with Fanout Cloud is that it works at a lower level, giving you access to raw protocol elements. For example, Fanout Cloud enables you to build a Lambda-powered API that supports plain WebSockets, which is not possible with any other service.</p>
<p>To make integration easy, we’ve introduced FaaS libraries for <a href="https://github.com/fanout/node-faas-grip">Node.js</a> and <a href="https://github.com/fanout/python-faas-grip">Python</a>. Read on to learn how it all works.</p>
<p>...</p>justinHigh scalability with Fanout and Fastlyhttp://blog.fanout.io/?20172017-11-15T01:58:00+00:002017-11-15T01:58:00+00:00<p><a href="https://fanout.io/">Fanout Cloud</a> is for high scale data push. <a href="https://www.fastly.com/">Fastly</a> is for high scale data pull. Many realtime applications need to work with data that is both pushed and pulled, and thus can benefit from using both of these systems in the same application. Fanout and Fastly can even be connected together!</p>
<p><img src="/assets/fanout-fastly.png" alt="fanout-fastly" /></p>
<p>Using Fanout and Fastly in the same application, independently, is pretty straightforward. For example, at initialization time, past content could be retrieved from Fastly, and Fanout Cloud could provide future pushed updates. What does it mean to connect the two systems together though? Read on to find out.</p>
<p>...</p>