Hacking SaaS #18 - Ideas from the community
Introducing the Community Champion program and featuring content by members of the SaaS Developer Community: multi-tenancy, user-defined fields, complexity and performance.
A few days ago, I attended Real Time Analytics Summit. During a panel discussion, Sachin Joshi, Sr Director of Engineering at Webex, shared how he attended a meetup and heard about a cool technical solution to an interesting problem. A year later, when his team ran into a similar problem, he knew people who had solved it already and a solution that worked for them. Communities are a powerful way to accelerate learning and innovation.
What makes communities work so well as a way to accelerate learning is the people who share their experiences. Look at this chain of events: In 2019, someone attended a meetup and shared how they solved a problem, In 2020, Sachin applied what he learned to a similar problem and in 2023, Sachin shared his learnings with 300 attendees of RTA Summit. Those who benefit from the community experience pay it forward by sharing their own experience.
SaaS Developer Heroes
To encourage more sharing in the SaaS Developer Community, we (Nile) announced the SaaS Developer Hero program for recognizing and rewarding developers who contributed above and beyond to our community. You can read more details here and if you have questions, we can discuss them in the community Slack.
Now, true to the spirit of the community, let’s look at new content from members of our community. If you find these blogs insightful, ping the authors on our community Slack and tell them! If you disagree or have questions, start a conversation - I’m sure the entire community will benefit from the discussion.
What kind of developer are you?
We are all SaaS developers, but it doesn’t mean we are all the same! Help us understand the community with one simple question:
Multi-tenancy Architecture with Kong API Gateway
Rick Spurgeon shared his very in-depth blog on how to use Kong API Gateway in multi-tenant architectures. He starts with high-level ideas around the control/data plane model and then goes into specific deployment models and how they match different types of multi-tenant architectures. I learned that Kong approaches multi-tenancy as an authorization problem, which is a common pattern and definitely addresses the data protection aspects of the problem (but not the “noisy neighbor” aspects).
In Kong Enterprise, multi-tenancy is supported with workspaces. Workspaces provide isolation of gateway configuration objects while maintaining a unified routing table on the data plane to support client traffic.
When pairing workspaces with RBAC, Kong Gateway administrators can effectively create tenants within the control plane. The gateway administrator creates workspaces and assigns administrators to them. The workspace administrators have segregated and secure access to only their portion of the gateway configuration.
Performance Isolation in multi-tenant DB at Cloudflare
Kong addresses multi-tenancy as an access control problem and solves it with RBAC. But multi-tenancy requires not just access isolation; it also requires performance isolation. You don’t want one misbehaving tenant to create noise for everyone, especially since some workloads are more critical or more sensitive to latency.
I invited Vignesh, engineering manager at Cloudflare and author of the blog post Performance isolation in a multi-tenant database environment to discuss the topic on the SaaS Developer Youtube:
User Defined Fields
Jeffery Sherman blogs quite a bit and even has his own podcast. A while back, he wrote a series of blog posts on how to handle user-defined fields in CRM. CRM isn’t the only SaaS product that has this problem; it is actually quite common: JIRA also supports use-defined fields, and most expense reporting apps allow for custom fields. I think every SaaS Developer should be familiar with the three patterns for addressing this problem and their tradeoffs.
Pattern 1, generalized columns in a database, spanned the dawn of time until the rise of NoSQL around 2010.
Pattern 2, NoSQL, began around 2010 and continues to today.
Pattern 3, JSON in a relational database, began in the late 2010s and combines the best of the two approaches
I’d add that pattern three also has some of the drawbacks of both approaches, and the right answer is always “It depends.”
Software Complexity
Complexity isn’t specific to SaaS and is a common theme of conversation between developers. Is this solution simpler? From what perspective? Are we bringing in needless complexity or solving an inherently complex problem?
Felix GV has a slightly pessimistic take - that after a certain point, you can’t reduce complexity, just move it around.
His writing reminded me of the classic essay - Worse is Better, which discussed the complexity of implementation vs. the complexity of APIs.
Trends in Observability and Alerting
Anjul Sahu shared Grafana’s Observability Survey in our community Slack. Mark Roddy couldn’t believe that 52% of the companies use six or more observability tools. Shahar Glazner, Jeffery Sherman, Rauan Mayemir, and Ken Finnigan jumped in to discuss what they observed in the observability space and how one defines an observability tool.
Shahar Glazner shares the opinion that companies have many observability tools and that this is one of the top problems in the alerting space. He joined our channel to discuss:
Real-Time Analytics in SaaS
I (Gwen) gave a keynote at Real Time Analytics Summit, discussing the use of Real-Time Analytics in Modern SaaS. I went over the history of SaaS, gave examples of cool SaaS products that are built on top of real-time data, and some of the architectures that power these products.
Lots of videos this week :) I hope you enjoy watching them over the weekend!