# PubNub

PubNub is a real-time communication platform and infrastructure-as-a-service company based in San Francisco, California. The company makes products for software and hardware developers to build real-time web, mobile, and Internet of Things (IoT) applications.
PubNub's primary product is a real-time publish–subscribe messaging API built on their global data stream network. The network is made up of a replicated network of 15 data centers located in North America, South America, Europe, and Asia. The network currently serves 330 million devices and streams a trillion messages per month.

## History

PubNub was founded in 2010 by Stephen Blum and Todd Greene. The platform raised $4.5 million in Series A funding from Relay Ventures and TiE Angels in March 2012. They received their $11 million Series B round of funding in September 2013 from Scale Venture Partners, Relay Ventures and TiE Angels. In July 2015, PubNub received its $20 million Series C round of funding led by Sapphire Ventures. In September 2016, PubNub closed a $6 million venture round led by Cisco Investments and Ericsson. In April 2019, PubNub received its $23 million Series D round of funding, adding Hewlett Packard Enterprise to the list of investors.

## Technology

PubNub utilizes a publish–subscribe model for real-time data streaming and device signaling and supports all of the capabilities of WebSockets, Socket.IO, SignalR, WebRTC Data Channel and other streaming protocols. PubNub provides SDKs for over 70 different programming languages and environments including JavaScript, iOS, and Android, as well as JavaScript frameworks such as AngularJS, Ember.js, and Backbone.js. PubNub also provides client libraries for board platforms including Raspberry Pi, Arduino, Texas Instruments, and Microchip.
* Functions a set of customizable microservices that give developers a way to add code and deploy features for real-time apps.
* Publish–subscribe Messaging provides real-time data streaming and device signaling, and includes built-in AES encryption and optional TLS/SSL encryption. The atomic components that make up a data stream are API Keys, Messages, and Channels. This feature handles channels in a lightweight manner, allowing software developers to create an unlimited number of channels for any set of API keys without first declaring the channel.
* Online Presence Detection provides tracking of online and offline status of users and devices in real-time. Presence events are triggered when a connected device subscribes or unsubscribes from a channel, or times out. The Presence API also includes a “state” feature allowing for the persistent tracking of any name–value pair a software developer specifies, such as a “typing” event indicator in a basic chat application.
* Access Management provides fine grain read and write access control on a per user, device, or channel basis. This adds an extra layer of security and enables the syndication of streams by providing authorization to individual users, as well as grant/revoke permissions at the channel or key level.
* Data Stream Controller multiplexes individual data streams as a single persistent connection, and it centralizes control of the creation and modification of groups of data channels at the server level.
* Storage & Playback stores messages as they are published to a data channel, and retrieves them from high-availability storage clusters at a later time. Data streams can also be replayed as they were broadcast in real-time.
* Mobile Push Notifications bridges native Pub/Sub Messaging API publishing with third-party push notification services including Google Android GCM, Apple iOS APNS, and Microsoft Windows Phone MSNP. The developing, configuring, and maintaining of server side components for third-party providers is provided by the PubNub API.