Live-Abstimmungssoftware für eine Veranstaltung

Live-Abstimmungssoftware für eine Veranstaltung

Vor einiger zeit hatte ich die Gelegenheit, eine Experimentelle Live-Abstimmungssoftware für eine Veranstaltung zu entwickeln. Dieses Experiment wurde von ungefähr 300 Teilnehmern genutzt und bot spannende technische Herausforderungen und Lernmöglichkeiten.

Funktionalitäten und Herausforderungen

- Mehrere Antwortmöglichkeiten: Den Teilnehmern wurden auf ihrem Smartphone verschiedene Antwortoptionen präsentiert, aus denen sie auswählen konnten. - Frontend und Ergebnisdarstellung: Es gab ein Frontend, welches die Abstimmungsergebnisse in Form von Diagrammen anzeigte. Zudem konnte eine Person die voreingestellten Fragen steuern und den Ablauf der Abstimmung koordinieren. - Spontane Domain-Änderung: Ein unerwartetes Problem trat auf, als das WLAN des Veranstaltungsortes bestimmte Domains blockierte. Daher mussten wir die Domain spontan kurz vor Beginn der Veranstaltung wechseln, was eine flexible und schnelle Anpassung erforderte. - Backend mit Fanout-Pattern: Das Backend nutzte das Fanout-Pattern, indem es in einem Redis Sentinel Cluster über einen Pub/Sub-Kanal Updates an alle Replikas des Backends verteilte. Dies stellte sicher, dass alle Teile des Systems immer synchronisiert waren. - WebSocket-Verbindung: Die Clients waren per WebSocket verbunden und erhielten Benachrichtigungen bei Änderungen (mit einer Rate von etwa 1/ Sekunde), was eine reibungslose und nahezu Echtzeit-Kommunikation der Ergebnisse gewährleistete. - Hohe Anzahl an Replikas: Die hohe Anzahl an Replikas erwies sich als äußerst vorteilhaft, da durch verschiedene Browser Implementierungen, einen Bug in den Backends herbeigeführt wurden. Dank der Replikas blieben diese Bugs für die Nutzer jedoch unbemerkt und beeinträchtigten nicht die Nutzung.

Technische Umsetzung und Fazit

Die Implementierung dieser Live-Abstimmungssoftware war ein spannendes Projekt, das sowohl technische als auch organisatorische Herausforderungen mit sich brachte. Dieses Projekt hat nicht nur meine Fähigkeiten in der Entwicklung und Fehlerbehebung gestärkt, sondern auch gezeigt, wie wichtig es ist, auf unerwartete Probleme flexibel zu reagieren.

Mehr Einblicke

Im Blog finden Sie weitere Praxiserfahrungen aus Projekten.