Connect

We're pleased to announce some major new functionality in Kafdrop, our open source Kafka monitoring tool. There are several new features introduced in this latest release, including brand new Kafka APIs, CORS support, front end search, and some general code cleanup and bug fixes. We hope you'll find these news additions as useful as we have at HomeAdvisor. As always, we appreciate all your feedback. You can find the new code and user guide on our GitHub Page.
Kafka APIs
The biggest change with this update is a brand new set of APIs that allow you to monitor and query your Kafka cluster. Up until now, Kafdrop has only provided HTML views of Kafka clusters: brokers, topics, consumer groups, and messages. Now all of those human readable views are available as JSON end points.
At HomeAdvisor, the need for these APIs was driven by our multi-data center work. We're using Apache Mirror Maker to synchronize our data centers and needed a way to ensure it's keeping up. Checking for lag in … [Read more...]

Microservices are currently the "in" thing in software development, and for good reason. They help us build more loosely coupled, highly cohesive, modular systems that work well in an continuous deployment model. Deploying a small change to a single microservice is much less risky than deploying a huge monolithic application with several weeks or months worth of effort. At HomeAdvisor, we jumped on the microservice bandwagon a couple of years ago and have found it to be a (mostly) positive experiment.
One question many struggle with, including us, is this: What, exactly, does a microservice look like? That is, what are the important things to keep in mind when writing a microservice?
In our time working with this architectural pattern, we've learned a thing or two about what makes a good microservice. We've identified at least four main characteristics that all microservices should have: they have a single responsibility, share nothing, are monitored, and run as a cluster. In … [Read more...]

Here at HomeAdvisor, we've recently started taking a closer look at creating more automated tests around our growing suite of microservices. Our testing strategy has typically followed the software testing pyramid. Unit tests have always been the biggest part of our test approach, with integration and component level tests becoming more prevalent as we've migrated to microservices. But all of these testing strategies are within the application, and require almost as much maintenance as the code itself. While all of these testing strategies are just as important in microservices as they are in a software monolith, microservices usually come with some additional testing burden in the form of contract testing. This refers to the public facing API that a microservice offers, and comes with its own set of concerns beyond normal testing methodologies.
In this post, we'll talk about how we use Swagger to automatically create API documentation for all of our microservices, so that we … [Read more...]

In recent years, building a comprehensive API automation framework has become crucial for large software systems. Our digital world has grown to include more and more devices that communicate with each other instead of humans, and most of this is driven by APIs. It's more important than ever to ensure organizations can release code with ease and confidence. Using an API automation framework ensures APIs are thoroughly tested prior to releasing, including boundary and error cases that are tedious to test with every code release. There are several benefits that such a framework will provide:
Forces APIs to be documented consistently for both human and machine readability.
Faster and more reliable than UI based automation such as Selenium.
Can cover a great deal more scenarios that might be impossible to using UI Automation.
As a Automation Test Engineer who specializes in REST API testing, I have seen and tried numerous strategies for API testing. In my experience, … [Read more...]

We've talked a lot recently about our experience decomposing our monolithic web applications and migrating towards a microservice architecture. In this post, the third part in our ongoing microservices series, we'll talk about the technology and tools we have chosen to build our common microservice stack.
Choosing a Microservice Stack
As we talked about in our microservices pitfalls post, one of the most important things you should do before building microservices is settle on a microservices stack. A microservice stack is the consistent set of technologies with which all teams will develop their microservices. This is what Mark Richards referred to as a "base image". As we'll discuss below, failure to take this important step early on can have lasting impacts on your organization.
The HomeAdvisor microservice stack is based on a variety of open source projects that generally have great community support and proven track records across multiple industries. Choosing your own stack … [Read more...]

About Us

Based in Golden, CO, HomeAdvisor’s technology group is comprised of nearly 100 Java ninjas, front end gladiators, QA warriors, U/X experts and other rock stars. We build the technology that helps make HomeAdvisor the best place for homeowners to connect with home service professionals.