Performance That Pays Off
Bits, bytes and speed. These are the factors that should be considered when you design a driver, a serializer or a client library. In these cases performance matters a lot and it pays off. During this presentation I'll drive you through various OSS projects that I contributed to. I want to share with you my journey as well as "design for performance" rules that you can apply on your own. It might be tempting to forget about it when living in a cloud #serverless era, but don't get fooled. With new pricing models, building a well performing part is sometimes more important than before?
The Only Thing That Matters
You don't want your database to drop data, do you? How databases and queues ensure that, in case of a failure, you still can access your data?
Keep Its Storage Simple Stupid
Windows Azure Storage is a solid foundation provided by Azure from the very beginning of Azure existence. How does it work? What does it offer and what is prohibited?
In .NET world, supported by async/await, understanding of the concurrent programming becomes vital. During this presentation, we'll immerse into low level concurrent APIs provided in the .NET platform. These are the same APIs used to create ConcurrentStack or ConcurrentQueue. You will understand how modern CPUs are constructed and how this whole volatile thing works.
Don't call the others
When working with services, in majority of cases we're focused on the technology aspect of it. During this presentation I'll show scenarios, where a deep understanding of business and a better modelling of a specific service, leads not only to solving current problems, but helps in creating maintainable long lasting services.
My Journey to the Land of Extreme Concurrent Performance in .NET
Considering modern hardware, the concurrent programming isn't an option any longer. It's a must have. C# language and .NET platform aligns to this direction to help a developer create well performing applications with ease. Is it possible that we can do it (much) better using a different paradigm than Tasks and async/await? During the presentation we'll aim high to get the best possible performance out of the moder hardware dropping many assuptions made before. This journey will guide you through from the very foundations of the mechanical sympathy to high level abstractions one can build upon it. It's a journey so fasten your seat belt tight. We'll visit places you've never considered before.
Transactions - yesterday & today
The aim of the presentation is to build foundations needed for modelling complex systems built with SQL databases, NoSQL, NewSQL and messaging systems. In one hour we'll go through different models, starting with "standard" transactions in relational databases, going through distributed ones and end with new approaches. Additionally, a few patterns will be introduced, which provide a solid approach for designing systems based on services, queues and databases.
Event Driven Architecture in practice
In the world of developers and aspiring architects, abbreviations like CQRS, DDD, ES, EDA, SOA are getting more and more popular. Unfortunately, their application is frequently limited to pet projects or just labeling applications with fancy words. We'd like to share with you a case study of a project showing a real usage of these approaches. The common denominator for both, the client side and the server side is the event driven approach.
Almost Everything You Always Wanted to Know About Http Cache
Http cache is frequently an uknown aspect of the web programming. The mechanism is used to miminize the transfer of static resources of our applications. During the presentation, I'll show how to addtionally optimize applications' data flow using the http cache. The playground is based on the ASP.NET WebAPI 2 project, providing a foundation for applying these patterns in your application.
IO Completion Ports
Have you ever heard about the power of Windows IO Completion Ports? It's the foundation for extremely performant IO and is the basis for .NET async operations as well. After this talk you'll be familiar with the native API of this feature and will be able to wrap it properly if needed for .NET calls.