The first edition of Hawk appeared in 2017 when the team participated in one of the many educational hackathons held at CodeX and needed an error catcher to improve the quality of their projects. After some time, they realized that this software could be useful for other developers, too.
It wasn’t a smooth start, however. The first prototype wasn’t too user-friendly and couldn’t handle all the incoming requests during the first trial run on third-party websites.
“We tested the first version with our partners at the company Komitet, which owns vc.ru, DTF, TJ, and others. In doing so, the system began to receive more and more events that slowed it down and made it unstable. Knowing that, we had to design a new more reliable architecture,” shares Vitaliy Guryn, a project manager and developer at CodeX.
The product concept is rather simple. Small programs called catchers usually plugged in websites and mobile apps report the errors they find to servers. Apart from that, such systems also provide additional information about what caused the error, when it happened and how many times, what the browser preferences were at the moment, and so on. All these specifics are displayed on the admin panel, which the developers called Garage.
The program is based on a microservice architecture. That is, each functional unit – be it a Collector, an error receiver, or a Worker, an error handler – is an independent service. As noted by the developers, it allows them to scale each module based on their load and thus makes the program work more smoothly.
The idea grew into a full-fledged product within several years. The CodeX team started the project in 2018 and has only recently brought it to the end.
“We didn’t have it all figured out right away. It took us a lot of time to develop the features, add them to the system, and finalize the project in general. At first, the catchers could only report the type of the error, then we trained them to include a piece of the code and other useful information, too. At the same time, we had to figure out how to organize the architecture in such a way that microservices could interact with one another and the system would work smoothly – even if one of its services went down,” explains Vitaliy Guryn.
Hawk currently works with all major programming languages, including JavaScript, PHP, Go, Node.js, Python, Scala, and Kotlin. The developers promise to add other languages soon, though, users can make necessary changes already now. Just like the company’s other products, Hawk is open-source software.
“Hawk is based on open-source code, meaning that users can see how each microservice works on GitHub. We’re not ashamed of our solutions and openly share about what happens with our user data. Plus, it’s a win-win situation. Such an approach lets any person analyze our code for errors and vulnerabilities, as well as add new features and adapt the program to their specific needs,” notes Vitaliy Guryn.
The system is still running on platforms managed by the Komitet company. The developers believe that this is mutually beneficial cooperation. While the company retains access to the new technology, the team gets to test its capabilities in high-load conditions.
“Hawk is not a simple static scanner that analyzes code and pinpoints errors but a run-time system. That means that when users, say, open a website, click on something, and nothing happens, this data is recorded in logs. Hawk tracks user activity on the website and reports what errors occurred on which pages, what users did, and so on. In fact, the program works as a web tester that helps us monitor errors and receive automatic notifications,” explains Nikita Melnikov, a DevOps engineer at CodeX.
The app is available free of charge with a monthly usage limit (100,000 errors/month), making it enough for most independent projects. To cover the system’s maintenance costs, the developers have introduced paid plans for corporate clients (covering 200,000, a million, and more errors per month).
“When we create solutions for our company, we always do a sort of a tiny release: we invest into the products’ packaging and documentation. Yet Hawk is way bigger. It has around 30 code repositories. In fact, the program already processes over 100 million errors per day in beta testing. Keeping the project afloat requires a sufficiently larger server infrastructure. It’s difficult to maintain such an infrastructure with our own funds, so we had to introduce paid plans for our users,” concludes Vitaliy Guryn.
The team came a long way over the 4 years of development that led up to today’s release. CodeX presented Hawk to the world via Product Hunt, an online platform that ranks the best new products and apps. The company’s previous major product, Editor.js, topped the website’s charts on the first day and won numerous awards.