Back to all posts

Lorena Castell's Bingoparaseñoras: A Solo Engineering Challenge

Today I want to share with you an exciting project that I recently completed: Bingoparaseñoras, an online bingo application designed for musical events hosted by the well-known presenter and showwoman. This project has been an engineering challenge that I tackled on my own, which adds special value to this achievement. It has allowed me to explore and apply cutting-edge technologies such as NET 8, CQRS, Event Driven Architecture, Azure, Domain-Driven Design (DDD), React and Next.js.

What is Bingoparaseñoras?

Bingoparaseñoras is much more than a simple online bingo. It's a tool designed to enhance Lorena Castell's musical events, where bingo becomes an interactive and exciting element for up to 10,000 people who can attend her shows. The application allows configuring the number of prizes by type (line, double line, and bingo) in each game, adapting to the specific needs of each event.

Additionally, it uses a non-repeating card generation algorithm to ensure fairness and excitement in the game. And now, we're working on a version for groups of friends to play from home.

Bingo Para Señoras in action

The Bingoparaseñoras application during a live event

The excitement of going on stage!

One of the most exciting elements of Bingoparaseñoras is the possibility for winners of each prize (line, double line, or bingo) to be notified in real-time and have the opportunity to go on stage to participate in surprise challenges and win additional prizes. The excitement is guaranteed!

Architecture and key technologies

To make this vision a reality, I've adopted a robust and scalable architecture. The application is based on:

  • .NET 8 for the backend, providing optimal performance and great flexibility
  • React and Next.js for the frontend, creating a modern, intuitive interface with excellent performance
  • CQRS (Command Query Responsibility Segregation) which allows separating write operations (commands) from read operations (queries), improving efficiency and scalability
  • Event Driven Architecture to facilitate concurrency management and real-time notification distribution to players

Technical challenge

One of the biggest challenges was ensuring that the application could support 10,000 concurrent players, maintaining a smooth experience and real-time notifications for all of them.

Domain-Driven Design (DDD)

From the beginning of the project, I adopted a Domain-Driven Design (DDD) approach. This allowed me to model the software around the business domain, facilitating communication with domain experts and ensuring that the application accurately reflects the needs of the users.

Scalability and performance

To achieve the necessary scalability, I've deployed all the infrastructure in Azure, taking advantage of its auto-scaling and high availability services. Additionally, I used Terraform to manage the infrastructure as code, allowing for quick and efficient provisioning and configuration of resources.

Azure Infrastructure

Bingo Para Señoras architecture

Bingoparaseñoras architecture

The solution uses the following Azure services:

  • Azure Container Apps for microservices
  • Azure Container Apps for the frontend application
  • Azure SQL Database for data storage
  • Azure Service Bus for event-based communication
  • Azure Redis Cache to optimize performance
  • Azure Application Insights for monitoring and telemetry

Prize types and American bingo

Bingoparaseñoras offers three types of prizes: line, double line, and bingo, all of them customizable in terms of the number of prizes per game. Additionally, the bingo played is American-style, which adds a strategic and exciting element to the game.

1

Line

Complete a horizontal, vertical, or diagonal line

2

Double line

Complete two lines on the same card

3

Bingo

Complete the entire card

Next steps

The project is already completed and in use for events. Now, I'm working on adapting it for home users. I plan to add new features and optimize performance to ensure the best possible user experience.

I'd love to know what you think about this project. Have you worked with similar technologies? What challenges have you faced when developing high-concurrency applications or with DDD? I look forward to your comments and suggestions!

#dotnet8 #cqrs #eventdrivenarchitecture #azure #terraform #bingo #ddd #react #nextjs #LorenaCastell