🚀 New Backend, Faster Dashboard 🚀
At Haystack we value iteration speed.
Our old system was written almost 1 year ago. At that time, Haystack only had a handful of users.
Since then Haystack has been growing rapidly.
Our system now needs to process millions of rows of data everyday and have been in under stress for sometime.
This started to impact the user experience.
Question: "When should you invest in a full architecture refactor?"
Answer: "When it prevents users from realizing core value."
We had complaints around dashboard speed, issues exploring, finding bottlenecks, lagged data sync's and much more. After several patches that didn't pan out, we realized we needed to invest in new architecture.
- We removed ~40% of our codebase
- Our systems is 10-50x more faster and can handle 100x more scale
- Powerful, flexible query-engine
- Easy development interface (New metrics in 1 day cycle time)
- and many more...
Again, why did we refactor?
We wanted to support users by iterating faster while maintaining fast query speeds. With this refactor, Haystack will be more reliable and iterate at a much faster pace!
Note: We will be continuing to migrate more of the app to use the newer system. In the meantime, you might be seeing old and new systems working together.
🛠 Drilldown Deployments 🛠
A common feedback we got was being able to see deployments like how it was possible to dive deeper into Cycle Time calculations.
We have added support to drilldown into Deployments and Hotfix Deployments.
🏗 Improving Change Failure Calculation 🏗
We spend every day thinking about how we can improve our calculations. After several internal debates and many customer design calls, we decided it's time to upgrade our Change Failure calculation.
Change Failure Rate is a measure what percentage of changes to production or released to users result in degraded service (e.g.:, lead to service impairment or service outage) and subsequently require remediation (e.g., require a hotfix, rollback, fix forward, patch)
In our old calculation Haystack would use # of hotfix pull requests / # of deployments. This calculation could result into inflated failure rates, sometimes being higher than 100% due to using 2 different unit of measurements. In the improved calculation Haystack is using # of hotfix deployments / # of deployments resulting into a more accurate representations.
For more details on the calculation, you can read this post.
Email email@example.com if you want to continue using the legacy calculation.
🔄 Auto Repository Sync 🔄
The larger your organization gets, the harder it is to keep your repositories up to date.
Previously, you needed to manually include every new repository in Haystack.
We added an 'Auto Sync' feature to automatically sync your Github Repositories into Haystack.
🔄 Auto Team Sync 🔄
The larger your organization gets, the harder to manage teams.
We added an 'Auto Sync' feature to automatically sync your Github Teams into Haystack so you can use Github Teams as your 'source of truth'
💡 Improvements 💡
- Added timestamps to risk table
- Update navigation bar to use ids rather than names
- Improved query builder to support timezones
- Improved cron job speed
- Improved merge rate calculations from merged prs / opened prs to merged prs / all prs.
- Improved merge rate calculations from closed prs / opened prs to closed prs / all prs.
- Improved Throughput Breakdown graph calculation to show opened prs in that week rather than active prs.
- Improve Pull Request Size graph to calculate only merged pull requests.
- Improve Active Developers Count graph to only count when a developer opens a pull request.
🕷 Bug Fixes 🕷
- Fix bug where polling would ddos our servers
- Fix bug with rate limiting not working as expected
- Fix bug with export data group by dropdown not working
- Fix bug where timezone would shift the date to the wrong direction for the initial week of the selected range.
🗑 Removed 🗑
⏰ In case you missed it ⏰
- 🔍 Query Builder (Request only) 🔍 - you'll be able to correlate any data Haystack has in any format, any time period and frequency!
- 😴 Idle Pull Request Risk 😴 - Now you can see which pull requests have been idle and for how long.
- 🔗 Share URLs 🔗 - You can copy the URL of any dashboard, with any filters selected and share it with your colleagues!
- 🚢 Multi-branch deployments 🚢 - You can now use multiple branch targets to count as deployments!
- 📰 Product Page - Keep up to date with feature releases here!