As with every jailbreak, this means a giant spike in traffic to all involved in the jailbreak community - specifically to saurik's servers (Cydia) and the default repositories' servers (ourselves, BigBoss, and zodttd). We thought we'd shed a little light on what's going on behind the scenes.

The iPhone 5 was released September 21st, and a jailbreak has been heartily anticipated. Additionally, over 200 million devices are currently running iOS 6.0 - and only a few of those had any jailbreak option until Monday's evasi0n release. At the end of January, saurik stated over 22 million individual devices had accessed Cydia within the past 60 days. That's with NO JAILBREAK being available for many of the latest devices at the time.

This was an interesting jailbreak release, in that it had a specific time, known a full day ahead of time. This creates a single giant crushing traffic flow initially, with sustained traffic and various spikes as the other side of the world wakes up, etc.

Let's go through a basic release from Cydia and the repositories' point of view.

When the jailbreak is released, hundreds of thousands of devices are opening Cydia at once - in this case over 100k within the first ten minutes. In the past, every one of these devices would first have to download each default repository's Packages file - the file which tells Cydia which packages a repo has in it. This text file is, in our instance, currently 13MB. That would have equaled 1.3 TB of bandwidth in 10 minutes before anyone even downloaded a single package, except as a genius move in this jailbreak, the evad3rs and saurik had arranged before hand to include a recent Packages file from each repo in the jailbreak - eliminating that need. Past jailbreaks, however, saw this as a huge initial spike.

But we're all still suddenly serving millions of pages and files - much of the content you see in Cydia is web pages, including Cydia's homepage, the Manage Account page, and every "depiction," or the page you see when you pull up a specific file.

Here's a graph saurik shared of his (non-repository - meaning none of the repo packages Telesphoreo Tangelo hosts) traffic since the jailbreak (measured in HTTP hits per 5 minutes):

That spike is 41,956 hits per second. (Note, a hit is any request for something via HTTP - so when you load a page, you're requesting various images, each a hit, javascript files, CSS files, etc - a server has to individually handle each of these). And note the far left, which is NORMAL traffic pre-release (already large - remember that 22m in 2 months number?).

Now, when a person accesses Cydia, and say, goes to install the E is for Ezra HD theme, a few things are happening.

The content you see in Cydia (at the top says ModMyi on black, has text describing the package underneath, links to screenshots, etc) is actually a webpage, located on our servers. This is called a depiction, which a repo's Packages file tells Cydia the location of. Generally, the repos host these web pages (some developers host their own depictions). Here's a graph of our hits over the past 24 hours, via CloudFlare:

The "Package Officially Purchased" and package price area in the depiction of a paid file, and the blue "Purchase" button are hosted by Cydia.

The package itself, a Debian archive (.deb file), is hosted by the repo, in ModMyi's case on a separate server for serving repository files and tracking their downloads. When you press "Install" in Cydia, Cydia then attempts to download the file from the repo, via the URL for the package given in the repo's Packages file. In each default repositories case, before this file is downloaded it is passed through another file which decides whether or not Cydia can access it. If a repo server is down, or the file hash doesn't match the one in the Packages file, you will see an error in the black Cydia install window such as 502 Bad Gateway, HTTP/1.1 503 Service Unavailable, Size mismatch, and/or others.

If this is a paid package (in the case we're looking at, it is), the repository's server first must contact Cydia's server to verify the device attempting to install this package has in fact paid for it. This is also in ModMyi's case when stats are recorded on the download (arguably something we should change - if the package fails, we've already counted the download).

If Cydia's server replies yes, the device is authorized to download, then the repo server sends the file, and you see the installation process begin in Cydia. If this device has not purchased the package, Cydia sends a no. If Cydia's servers are overwhelmed, after a timeout the repository server assumes this is a no. In either "no" case, Cydia will display a 403 forbidden error at this point.

If you've successfully downloaded the package, Cydia now unpacks it locally, and installs the package on your iDevice.

Note: many packages have Depends, or other packages which they require Cydia to download before or after installing themselves - so you may be requesting Cydia to do this with multiple packages on multiple repos.

In a perfect situation, by opening Cydia and installing this theme you've completed these steps:

Opened Cydia, hitting saurik's server to load the home page.

Refreshed your sources, downloading the current packages list (for the past couple years this has been ONLY the packages which are new since the last time you logged in) from all installed repositories.

Browsed to the page of the package you're installing, actually a webpage on a repo's server.

Seen the "Officially Purchased" area or "Purchase" button, after Cydia has checked to see if your device is authorized.

Pressed Install, making Cydia request the file from the repo server.

Caused the repo server to talk to Cydia's server, requesting again if the device is authorized.

Downloaded a file, after the repo server sees the device is authorized.

Cydia unpacks and installs the package, you're done.

Of course, this is all just on the Cydia side - yesterday also set traffic records for us on the modmyi.com website as well.

Most users ever online was 20,073, February 4th 2013 at 9:41 PM.

Many days before a jailbreak is released all parties are working hard bolstering, testing, and configuring backup solutions in preparation for the release. And of course, we spend all year monitoring our respective sites and improving our setups as necessary.

From early on release day repo maintainers, saurik, the jailbreak publishers (evad3rs this time around), and a host of support staff helping with servers, caching, etc are all working non-stop. We stare at errors all day, monitor stats, and fix everything possible as it's happening.

My thanks to all of them for their work, the community we are a part of, and the great customization of our devices made possible by it.

That's crazy, never would have guessed there were that many people who jailbreak their iDevices. When a new jailbreak is released I usually don't even open Cydia until the next day cause I know it's going to be long load times and lots of errors, I got lucky last night though, installed all my must have tweaks almost problem free!

Remember HITS are not equal to VISITS. One person going to a web page can have multiple hits as they make HTTP requests for images, files, and scripts. I think Saurik posted something about it and it is good for surging traffic but that 12,000K hits is not 12,000K unique visitors. Just an FYI.

I think it's the right thing to do. If you feel like they've done you a service, and in this case, it's a huge worldwide service, donate what you think it's worth to you. Plain and simple. I've donated to each and every jailbreak since I started and I think it's amazing what this group has done for everyone in the jailbreak community. Without them, we'd be stuck with our vanilla phones. Thanks so much guys! Keep up the amazing work!