Hello again, fellow BattleCrate waiterers. It’s time for another edition of “why has BattleCrate been delayed this time”!
Well, in case that didn’t give it away (and in case you haven’t noticed that our website is still merely a landing page), here’s an update from the team on BattleCrate’s progress, reasons for delay (again) and when you can now expect BattleCrate to launch.
Let’s begin with a heartfelt apology for yet another delay. Nobody wants BattleCrate live as much as we do. Unfortunately, we’ve hit some unexpected hurdles (sound familiar?), many of which have been very late on the project timeline. Let’s break them down…
Crate Deployments: Docker
Docker has been used for Crate Deployments since day one, and when it was initially evaluated, it seemed like a good choice. It was not. There are two problems with Docker: the file system and the way that Docker containers are more suited for single applications.
Docker’s file system is layered with multiple read-only images followed by one write-only image. The advantage of this system was the ability to reuse images, copy-on-write and the simplified configuration. Problems arise as a result of the singular write-only layer that isn’t up to the task of high performance I/O. In a typical application, you would use volumes however, volumes must be mounted on a per-path basis making quotas and QoS practically impossible to control.
Then there’s Docker’s containers. As a standard practice we enforce isolation wherever and whenever possible. This caused problems for our file server which ran within the container using IPC. The primary game application could not be stopped at the same time as allowing other applications to continue running. This forced the decision to move to Linux Containers (LXD).
Billing Provider: Braintree
Early on, we decided to use Braintree to power BattleCrate’s billing system. Braintree’s combined card and PayPal service made it a no-Braintree-er from a developer perspective. Fast forward to the billing system being complete, a big relief all around, we’re ready to launch, let’s move the Braintree sandbox account to a production account!
That’s not gone well. Braintree wouldn’t let us move our account to production and now with vast amounts of BattleCrate intertwined with Braintree’s API, this might be problematic.
Starting today, work has begin on rebuilding parts of the BattleCrate billing system, trying to reuse as much code as possible while moving the system over to Stripe, who we have worked with in the past, but have higher transaction fees. PayPal support will also be added using their own API.
You could argue that it would have been a good idea to check with Braintree that our business model was eligible for their platform and to build a simpler version of our Crate deployment systems to validate that the technology could do the job. We’re only human and we can only learn from our mistakes.
We thank you for your continued support and hope you will be using BattleCrate before Q3 this year!