Length: 2 days workshop Customizations: Possible, drop me an email
Having an API ready for production should mean more than just deploying functionality. There are certain architectural aspects that often get overlooked, only considering them too late in the process, if at all..
In this workshop, we will design an API with respect to the non-functional requirements that are paramount to any serious application running in production.
We will cover the design process of several API types, including REST, and then we transition towards messaging, always with an eye on the Cloud.
This is a hands-on workshop, so be prepared to write code!
We will start by designing an API that has all the features to be production-ready. Then we introduce different requirements and expand the feature set, so to that in the end we have an overview of the steps we have to take to have robust APIs, reliable and able to handle load.
By the end of the workshop, you will know how you can evolve your architecture from simple to complex, from RESTful to messaging-based. We will see what the usual steps are to do that and what transformations we have to make in our architecture to accommodate everything.
This is a hands-on workshop, so be prepared to write code!
Workshop Structure & Contents
We will cover:
In this section we delve into intricacies of REST-based APIs, the client/server nature of it and we explore the decision-making process behind choosing REST, by offering a detailed guide to the API design process, documenting and the most common usage scenarios.
This section we cover gRPC and we outline the RPC API design process. We start by exposing and defining operations, particularities of consuming these APIs and document them. This succinctly summarizes the key components covered in this part, providing an overview of the gRPC protocol, considerations for RPC, and the step-by-step process for designing RPC APIs.
In this section we take our previously designed API, and we start doing the necessary changes to make use of asynchronous messaging.
We deep dive into a new world that covers queues, topics, message brokers, different abstraction and patterns and we will see what changes are needed to adapt our previous architecture.
In this section we will see how we can introduce patterns like Outbox, Competing consumers, Sagas, Routing Slips and learn what we gain from using them, as well as looking at how we can monitor our system.
Need to have Visual Studio, or an IDE you are familiar with .NET 9 or higher Docker Github RabbitMq installed as standalone instance or we will install it in Docker
Who should attend?
The workshop targets .NET Software developers that want to have a more architecture-focused approach C# developers that want to understand what are the communication patterns, and the best practices for APIs in distributed architectures.
At the end of this workshop you will be able to: