EchoMTG started as an idea. 17,000 Users later, we face new challenges
UPDATE August 2018: This issue was resolved.
Holy crap, I can't believe I'm writing this article. I started EchoMTG as a way to alert me of opportunistic trades when I was trading on MOTL (magic online trading league) in 2012. It worked really well! Fast forward 6 years, and EchoMTG has 17,000 users, with an average of 600 people actively logging in every 24 hours to adjust their inventory in the system.
A Blessing and a Curse
Due to the number of active requests we have optimize the system to handle an onslaught of requests, as we are proud to actively support 250 requests a second to a single page
Every wonder why features development slowed down? If you did, you now have a good answer, its because we have been spending our energy on solving for mass scale (its been awesome btw).
I'm a nerd, I love this
#magic4life. This website is a core part of my life, as I've dedicated many hours to it since 2012. We sacrifice the free time most peoples spend watching shows on Netflix to patching issues and building features on this website. My angelic wife (Iona) can 100% attest to this, as she is in the weeds with me as she answers hundreds of support emails a month. The two of us can only handle so much while both having full time jobs. Most recently, I've dealt with one of the most confusing bugs ever. It came out of no where, and is not due to any new feature.
Math: ((16,000,000 / 356) / 24) / 60 = 31.21
About 3 months ago, something strange has started being reported by a couple users: a random card would be added to their inventory. Since that has been happening We've been collecting data on each occurrence. The randomness lead me to a potential large issues: data race conditions. Basically every couple seconds, 3-10 transactions may occur simultaneously, causing a small change of overlap. About 12 of these occurrences have been reported to us. Let's get into the problem deeper:
Here is an excerpt from a wikipedia article that explains what exactly what that means: A race condition or race hazard is the behavior of an electronics, software, or other system where the output is dependent on the sequence or timing of other uncontrollable events. It becomes a bug when events do not happen in the order the programmer intended.
We are actively solving for that scenario, and I'd thought it would be appropriate to share that to everyone in the dawn of Jace, the Mind Sculptor being unbanned.
Thank you for all the support and love!
—Teeg & Iona