February 22-24, 2023
Montreal, Canada

Architecture & Design Patterns Conference 2023

Architecture & Design Patterns Is your environment acting the way you intended it to be, as in do your users see what you wanted them to see? Is your app breaking under stress or even worse going down when components are acting up (or down in this case)?
In this session you will be guided though all the options you have today lining out all the testing capabilities you have in the Microsoft Coding Universe.
Architecture & Design Patterns We love heated discussions about what is RESTful and laugh at SOAP and other ancient RPC protocols while glorifying GraphQL... Forget the buzzwords and let's explore the true meaning of Application Programming Interfaces, from mere variables and functions, through network connections, to connecting large software systems. Thinking in terms of APIs can improve the way we approach software design on so many levels!
Architecture & Design Patterns Your script is constantly waiting. For the database, the e-mail server, the HTTP server of any service, a file from the disk or even for the RAM. And with it the customers wait.
I want to show how with an asynchronous architecture, RabbitMQ and ReactPHP the waiting time is significantly shortened and that sometimes you do not have to wait.
Architecture & Design Patterns Insights from building a real life, high-load REST API
Implementing a REST API is not only about designing correct resource URLs. I will talk about the software and system engineering part it takes to build a data API. I will show concrete examples from a project where we gather data from dozens of different services and systems and build a real-time capable data API. The main technology stack is Symfony, Elasticsearch and Varnish.
Architecture & Design Patterns Caching data is a pattern used by any application that needs to serve high traffic and finds itself with latency requirements being incompatible with the selected persistence choice. While simple at first, creating and maintaining a cache has aspects often overlooked. In this session I will cover some of the challenges with caching, the typical solutions used and present the notion of using CQRS to eliminate the need to have one
Architecture & Design Patterns Data Collections play an essential role in our applications. How we manage our data can be crucial to their overall performance.

In this presentation, we want to introduce DynamicData, a library that allows developers to bring the power of Reactive Extensions (Rx) to collections.

We will also show how we can leverage DynamicData in our .NET applications.
Architecture & Design Patterns A picture is worth a thousand words, they say - but unfortunately it is not always the case. If done right, diagrams are a treasure - but we've all seen and suffered from spaghetti diagrams and ones bringing confusion rather than clarity and added value.

Let's see what makes a diagram effective, what are the techniques and principles for creating good diagrams - and how everyone can get better at using this powerful communication tool.
Architecture & Design Patterns The never-ending stream of new things to learn makes it difficult to stay relevant in the market. We know there are no silver bullets, but what about a way to gain a deeper understanding and knowledge which does not expire? Forget about just writing code - enter the world of equational reasoning, where things are represented by functions and transformations. There is a reason this industry is called Information Technology.
Architecture & Design Patterns In this talk, we'll see what Event Sourcing is and we'll see how it can be combined with Domain Driven Design in a practical scenario. We'll also see different implementations using on-premise and cloud infrastructure
Architecture & Design Patterns Microfrontends are the "microservices" of the frontend world. They enable web apps to be divided into separate modules and thus scale to many developers. While the backend has consensus on how to architect microservices, the frontend is still in the experimentation phase. I will describe how Roundforest does microfrontends, in a way that translates microservices to a natural and logical frontend architecture that makes sense on the web.
Architecture & Design Patterns In this talk, we'll see some of the common patterns used to address distributed transactions. We will address the pros and cons and learn some of their frequent use cases.
Architecture & Design Patterns What's the best way to make two apps communicate? How do you split one big app into two smaller ones? How do you switch from a single app to a constellation of services? Event streaming provides the most robust answer. Simple but powerful Kafka streams unlock a world of capabilities with their durability and consistency, but integrating with applications poses challenges. Join us and learn the streaming data patterns you need for your system.
Architecture & Design Patterns Everyone does Azure (or cloud in general) Unfortunately most of the projects encountered are not using the resilience or HA design features they need or can be provided by Cloud Platforms. This session provides guidance on resilient approaches, patterns & practices and discusses design for failure, specifically targeted at the Microsoft Azure Cloud Platform (but applicable to other cloud platforms as well )
Architecture & Design Patterns There are countless conversations about performance. How many requests per second can a web app handle? What's the average response time of a request? For the most part, all of these are vanity metrics.



This session will discuss the architecture and strategy for a real-ti
Architecture & Design Patterns Boite à outils complète pour implémenter des processus d'authentification fluides et sécurisés, Keycloak permet de gérer simplement les identités et l'accès à vos applications de bout en bout.
En quelques actions, vos applications supporteront le SSO, l'authentification multifacteur, la fédération d'identités, la gestion de compte et même le consentement utilisateur.
A tous ceux qui souhaitent améliorer la sécurité et l'UX : rejoignez-nous !
Architecture & Design Patterns With 2 major web technology advancements, container queries and the decoupling of module federation from webpack, Micro Frontends architecture about to become as ubiquitous and mainstream as microservices. So what do you need to know? What are the pitfalls and tradeoffs, and what can you do to introduce Micro Frontends to your web application architecture?
Architecture & Design Patterns Localization and Internationalization are two core concepts to create sites and applications for international users. But the underlying technical challenges and concepts are worth taking a closer look. Like those different locale-strings. Or the differences between language, countries and dialects. And how do they influence the way dates or numbers are formatted? Let's unravel those mysteries to build sites that can truly be international.
Architecture & Design Patterns Coding with static types feels safe, the compiler has your back.

But today, you got a critical issue in prod: payments are failing! A quick check of the logs left you puzzled: TypeError: discount.toFixed is not a function. Wait... Isn't discount supposed to be a number here? How did that happen? Why didn't the compiler catch it before?! Worry no more.

I'll show you where your blind spots are, and a simple way for you to fix them.
Architecture & Design Patterns Sylius and API Platform integration is the project that we started in early 2020. Since then, we were working hard designing, delivering and adjusting our new API. We've learned a lot and during my presentation, I would like to share our findings. During my talk, you may expect answers to following questions: How to design more complicated flows in API? Why did we design our API this way? What were our heuristics and what did we achieve?
Architecture & Design Patterns … you might have asked the wrong question. In this session we will take a look at time and its oddities. And determine whether the all-time favourite "Use UTC" actually is a good option in each and every case. And if that should not be the case, what other options we have at hands to handle time in our code and in databases.

Explore all 152 sessions