A new version of Buyfolio was released on Thursday, June 13. This version became a remarkable milestone in the application history and the project got a new name - Agentfolio.
After Buyfolio was acquired by Zillow we knew that the application was going to grow. It was going to consume the real estate data from all regions of the USA and share it among numerous real estate agents all across the country.
Buyfolio was an application targeted at New York city agents. Scaling an application of this size to fit all agents of United States of America was an unordinary task. Agents in different regions have different needs. For example, when one looks for a house in Phoenix, he is concerned about having a pool. One does not care about having a pool in Alyaska. There are very few condos in Chicago, but a lot of them in New York. The small world of old Buyfolio had to be enlarged to support all options without loosing consistency.
The second challenge was that the United States of America were much bigger that the New York city. We had around 120,000 houses database in New York, but every new area like Chicago or Boston added its own 100,000 or more. The hardest thing was that we had to process requests to the database more frequently than we were used to. The customers base was also growing with each new market too!
We greatly restructured the application to achieve these goals. We introduced a special Market Rules mechanism which allowed us to control almost every side of the application. It allowed us to scale over increasing complexity of new requirements seamlessly. Our designers did a wonderful job also. All the variety of data had to be displayed in common views and they created a very clean and intuitive workflow.
To improve performance, we switched our database to PostgreSQL and made numerous changes in the database structure. But these means were not enough and we extracted the piece of the application which was responsible to consume and normalize the houses and appartaments data - the data processor - and made it a separate application developed in a fast and modern language Scala. This allowed us to scale application and the data processor independently. Now the whole system can consume up to 200,000 houses in an hour. And this is not a limit - Scala part can consume and normalize much more data.
Also, we have tuned up many other application parts, especially the database queries (one of them was speeded up ten thousand times!). Now we are pretty sure we can handle a lot of simultaneous users.
For short, the changes are:
- We have a large database of houses in all areas of the USA. An agent must prove that he is an authorized MLS member to access it.
- The information about houses became more rich. New York, Chicago, Boston have their own specificity. We allow one to search by criterias which are important for a selected region.
- The application was completely redesigned. Now it looks splendid.
- The mobile application was redesigned as well and became much more comfortable.
- The whole "New results" logic was rewritten; a user can be sure that he will never miss a perfect house.
- We are Agenfolio now! A new nature brought to life a new name.
The application has to take over the US market by the end of this year. And after everything we did, we are confident that it is capable to do this.
To learn more about this project check it out on our portfolio here.