The Push Service was originally developed in Go, utilizing a websocket connection from Firefox OS to the Push service. It was deployed in 2013 with the legacy SimplePush DOM API that runs under Firefox OS. This API only supported incrementing version numbers, to wake a device so that it could check with an Application Server to determine what to display.
In 2015 the Push Service was rewritten in Python, and added preliminary WebPush support for carrying data in push messages. The underlying protocol used between Firefox and the Push Service is an extended SimplePush Protocol utilizing a websocket protocol that will eventually be deprecated in favor of a specification compliant WebPush HTTP 2.0 protocol.