---
layout: post
title: "Apache Cassandra World Party | April 2021"
date:   2021-03-25
author: the Apache Cassandra Community
categories: blog
---

The COVID-19 pandemic has taken a toll on a lot of things and one of those is our ability to interact as a community. There has been no in-person conferences or meetups for over a year now. The Cassandra community has always thrived on sharing with each other at places like ApacheCon and the Cassandra Summit. With Cassandra 4.0, we have a lot to celebrate!

![Apache Cassandra™ World Party footer](/img/world-party-2021-footer.png)

This release will be the most stable database ever shipped, and Cassandra has become one of the most important databases running today. It is responsible for the biggest workloads in the world and because of that, [we want to gather the worldwide community and have a party](https://hopin.com/events/apache-cassandra-4-0-world-party).

We thought we would do something different for this special event that reflects who we are as a community. Our community lives and works in every timezone, and we want to make it as easy as possible for everyone to participate so we’ve decided to use an Ignite-style format. If you are new to this here’s how it works:

* Each talk is only 5 minutes long.
* You get ten slides and they automatically advance every 30 seconds.
* To get you started, we have a template ready [here](https://docs.google.com/presentation/d/1cWta8H88xXolEdS-HFo9nzp1GI5v_VkCHo5dmoKqozY/edit#slide=id.gc922c7a35f_0_106).
* You can do your talk in the language of your choice. English is not required.
* Format: PDF (Please no GIFs or videos)

When you are ready, you can use [this link to submit your talk idea](https://sessionize.com/cassandra) by April 9, 2021. It’s only five minutes but you can share a lot in that time. Have fun with the format and encourage other people in your network to participate. Diversity is what makes our community stronger so if you are a newcomer, don’t let that put you off -- we’d love you to share your experiences.

## What?

One-day virtual party on Wednesday, April 28 with three, hour-long sessions so you can celebrate with the Cassandra community in your time zone -- or attend all three!

## When?

Join us at the time most convenient for you:

* April 28 5:00am UTC
* April 28 1:00pm UTC
* April 28 9:00pm UTC

[Register here](https://hopin.com/events/apache-cassandra-4-0-world-party). In the meantime, please [submit your 5-minute Cassandra talk](https://sessionize.com/cassandra) by April 9!

Whether you're attending or speaking, all Apache Cassandra™ World Party participants must adhere to the [code of conduct](https://www.apache.org/foundation/policies/anti-harassment.html).

Got questions about the event? Please email [events@constantia.io](mailto:events@constantia.io).

