Houseware Architecture
A brief walkthrough of Houseware's system. The content is correct as of Aug'23 and will keep evolving.
Overview
Houseware is a no-code, warehouse-native product analytics platform. It is built especially for business teams so users across functions like product, marketing, customer success, etc., can access, explore, and use product data to power their daily workflows.
At Houseware, we have focussed on building product analytics architecture that is cost-effective and super easy to connect with your existing architecture - without compromising on the query speed.
Being warehouse-native, it sits on top of your warehouse, where all your data from different applications reside. Its architectural capabilities help customers get insights that are not possible to get through a singular data source. Hence it leverages your rich, robust, single source of truth warehouse to power your data needs.
It is built to scale, and security is not an afterthought. This document deep-dives into Houseware’s system architecture. If your questions are still unanswered, feel free to reach out to us at [email protected].
Guiding principles:
- Composable: Our platform is specifically designed to join data from multiple sources quickly and efficiently. This allows users to get comprehensive insights from diverse data sources with ease.
- Cost-effective: As Houseware directly connects on top of your warehouse, there are no costs associated to transfer data between your existing systems to Houseware. Our query engine is also designed in a way that all complex visualizations like funnels, flows, retention charts, etc. run on hyper-optimized queries to avoid a high load on your database.
- Swift integration: Houseware is plug-and-play. Unlike other complex product analytics tools, you do not have to spend a month with us to get it up and running for your team. It can be connected to any warehouse - AWS, Big Query, Snowflake, or any CDP like Rudderstack, Segment, etc.
- Data Security: Your data stays on your systems! We ensure the architecture of our platform includes stringent measures for data protection.
- Rapid Response: Our goal is to ensure that most queries are processed and answered super fast, offering a swift and seamless user experience. Complex visualizations like product flows, funnels, retention charts, etc. all get generated in a few seconds.
Components
Houseware architecture can be divided into three parts:
🛠️ Connection:
It directly connects to your existing product events database.
🗄️ Storage:
There is a tiny component of storage that stores the events data transformed into the Houseware event schema along with other metadata of those events.
▶️ Query:
It queries data on the fly as you explore your product data and create powerful visualizations like funnels, flows, trends, user cohorts, retention charts, etc.
Feature Highlight: Houseware does not have any proprietary data model! And that is the highlight of its architecture. Why - because no copy of your data gets created inside Houseware application. Hence the source of truth will always be your warehouse.
Houseware Schema
Houseware schema consists of one critical events table. Using this table, all other derived tables storing metadata on user and event properties are automatically generated by Houseware.
Key components or essential columns of the events table are:
- Timestamp: The time when the event was captured on the device. It is used for ordering events
- Identifier: Unique identifier for the user who took the action. Both user_id and device_id are used to identify the unique user.
- Event name: The action it denotes.
- Properties: More information describing the event - “order placed” like “item type” category of the product purchased, etc.
- Dimensions: These are common user or event properties used to apply filters and breakdowns like geographical regions, gender, age, etc. This helps us leverage Snowflake's columnar storage and run analysis more efficiently. All properties specific to an event are included as part of the properties JSON.
Column Name | Data type | Details |
---|---|---|
*event_id | String (UUID) | Unique identifier for the event |
*device_id | String (UUID) | Identifier for the device from which the event was captured. Can be a cookie/ anonymous user id if the user is not logged in |
*user_id | String (UUID) | Unique identifier of the user, generated after the user has logged in. Null values for this field indicate that the user has not logged in |
*device_ts | Timestamp in UTC | The time when the event was captured on the device. Used for ordering events |
*server_ts | Timestamp in UTC | The time when the event was received at the server. Used for restricting events to certain periods of interest |
*event_name | String | Name of the event |
*properties | JSON | Free-flowing properties associated with the event. Try and stick to event-specific properties only here. Any common event properties or user properties can be kept as a column of their own (as shown below as event_dimension1). Useful for filters or breakdown. |
event_dimension1 | String | Event dimension that is applicable for all the events. Useful for filters or breakdown. |
event_dimension2 | String | Event dimension that is applicable for all the events. Useful for filters or breakdown. |
user_dimension1 | String | User dimension that is applicable for all the events. Useful for filters or breakdown. |
user_dimension2 | String | User dimension that is applicable for all the events. Useful for filters or breakdown. |
Product Analytics Capabilities
Houseware's intentional design helps you explore and analyze your product analytics data super fast and easily in a no-code fashion. Here are the key analytics capabilities that it lets users use.
Funnels
- The funnel visualization helps view product data in sequential steps and the conversion rate at each step.
- For example, for an e-commerce product, a user can see the number of users who went through and dropped between all the steps of ‘app open’ to ‘order placed’.
- In Houseware, this funnel can also be filtered and segmented by user or event properties.
Note: Houseware uses device_id and device_ts (device timestamp) to sequence the events together in a funnel.
Flows
- Flows help you identify the most frequent paths a user takes on the product.
- The user only has to select an anchor event and the most frequent paths before and after this anchor event are displayed.
- It also helps to identify user drop-offs post a certain event in the entire sequence.
Note: Houseware counts only unique user conversions. Even if they performed the same sequence multiple times in the given time period, it would only be counted as a single entry in the flow.
Trends
- Trends visualization allows you to see any event over a period of time and slice and dice it by any user or event property.
- It can help you count the number of unique users who did a particular event and the number of times that event was triggered.
- Houseware also allows users to create custom formulas on top of existing events.
- For example, the percentage of users who successfully signed up on the product can be calculated: ((number of users who visited the homepage/ users who signed up))*100.
- This custom formula will get plotted as a line chart and just like any other event can be filtered or broken down by user or event properties, as applicable.
Retention Charts
- The retention line chart and retention heatmap (aka triangular chart) help to understand the absolute count and the percentage of users returning and doing an event after the first use. It helps to understand the engagement and stickiness of the product.
- Houseware allows you to check retention at day, week, and monthly levels.
- When measuring N-Day Retention, Day 0 typically refers to the day a new user first uses the product; the first use can encompass anything from downloading and opening a mobile app to completing a specific action.
- Like all other visualizations, event-based or user-based properties can filter or segment the retention curves. It can also be filtered using a specific time range.
Cohorts
- Houseware allows you to create a group of users by filtering them based on event or user-based properties
- For example, I can create a cohort of all users in the city of Chicago who are between the age of 20-30 years.
- Houseware also allows users to be grouped based on the events they did.
- For example, I can create a cohort of all users in the city of Chicago and those who have also viewed the in-app notifications in the last 7 days. I can make this cohort using the create cohort section.
This is a basic walkthrough of Houseware's architecture and key capabilities. To know more about its features, refer to the Product Analysis section of the docs.
For any other queries, feel free to reach out to the Houseware team at [email protected] or at [email protected]!
Updated over 1 year ago