About the workshop
There are tons of use cases for asynchronous applications in web development. Importing data, building crawlers, offloading CPU and memory hungry tasks such as video encoding, shuffling data between e-commerce systems, logging, notification systems, stock trading applications - you name it.
In this workshop, we will use Symfony to pull in a live data stream, enrich the data with bits from bulk offline data imported by us, and extract some interesting information. Namely, we will be monitoring air traffic around the workshop venue!
What you will learn
Naturally, this workshop will center around Symfony's Messenger Component. We'll start with the basic concepts and work our way to advanced usages using multiple queues and complex setups. But there is more than just the component: An important part is to learn how to design asynchronous apps in general, which requires quite a different approach than you might take for granted in classic web apps.
Also, our project uses the latest Symfony version, and we will cover a lot of current best practices on how to build a modern Symfony app today. Even if you are a seasoned Symfony developer, there should be something new for you here as well!
What you should know
While we will build the asynchronous part of our example app from the ground up, the rest of the code like the data model and much of the business model will come prebuilt. All you need is a basic knowledge of Symfony, a good grasp of OOP in PHP, and the ability to spin up a Docker environment.
What you should bring
If you want to get your hands on the code (highly recommended!), the minimum requirement is a laptop computer with a current version of Docker and Docker Compose installed.
If you are on a Mac (like I am), I recommend running PHP locally for the workshop. For this, you will need PHP 8.1 plus the Symfony CLI installed (you will still need Docker for the infrastructure we'll use).
To minimize setup time during the workshop, and to save the conference network from huge downloads, please make sure you prepare the following steps before attending the workshop - better yet, before even travelling to the conference:
All details in the README