Case StudyScalingPerformanceSuccess Story

Case Study: Scaling to 1 Million Messages a Month

Elena Fisher
| 2/20/2024
Case Study: Scaling to 1 Million Messages a Month

The “StoryTime” Experiment

In late 2023, a group of writers had an idea: A Discord bot that lets reliable users collaboratively write a novel, sentence by sentence.

They named it StoryTime. They expected maybe 100 users. They got 50,000 in week one.

Usually, this is where a “hacky” python script crashes. But StoryTime was built on BotBuilder.

The Architecture of a No-Code Giant

The logic required was surprisingly complex:

  1. User turn-taking: Only one person can write at a time.
  2. Voting: The community votes to “keep” or “delete” the last sentence.
  3. Archiving: Saving valid sentences to a Google Sheet (via Webhooks).

The Flowchart Solution

Instead of managing async/await locks in code, the creators used BotBuilder’s Global Variables.

  • {{current_turn_user_id}}: Stores who is writing.
  • {{is_locked}}: A boolean flag.

The Logic Block:

IF {{is_locked}} == true
  THEN Reply "Someone is currently writing! Wait your turn."
  ELSE Set {{is_locked}} = true AND Set {{current_turn_user_id}} = UserID

This atomic operation prevented race conditions, even with thousands of concurrent inputs.

Performance Metrics

Here is the data from the first month of “Viral Mode”:

MetricWeek 1Week 2Week 3Week 4
Active Users5,20028,00055,00082,000
Messages Processed45k320k890k1.2M
Bot Downtime0 mins2 mins0 mins0 mins
Server Costs$0$0$0$0

Note: Since BotBuilder handles the infrastructure, the creators paid a flat subscription fee rather than scaling AWS instances manually.

The Discord Challenge

Discord’s rate limits are strict.

  • Limit: 50 requests per second.
  • BotBuilder’s Solution: The platform automatically queues and throttles outgoing messages. The creators didn’t have to write a single line of rate-limiting logic.

User Feedback via Bot

They also used the bot to collect feedback.

“I thought making a bot this complex required a team of engineers. Adding a polling features took me 45 seconds in the visual editor.” — StoryTime Creator

Improvements with Analytics

Using BotBuilder’s built-in analytics dashboard, they noticed a drop-off at step 4 (Voting).

  • Data: 60% of users abandoned the vote if it took >30 seconds.
  • Action: They adjusted the “Wait for Input” timeout block from 60s to 20s.
  • Result: Participation increased by 22%.

Conclusion

StoryTime proved that “No-Code” does not mean “Low-Scale”. With the right logic design, you can support enterprise-level traffic purely through a visual interface.

This article was sponsored by