From C# monolith to functional actors with Orleans and F#

schedule Nov 15th 12:00 - 12:45 PM place Ball Room 2

This is an experience talk from my work with NRK, the

Norwegian Broadcasting Company, Norway's public broadcaster.

Over the last 3-4 years we've taken the TV and radio streaming sites from a monolith to multiple

domain based services. We'll look at how we've transitioned the from a pure object oriented development team to a function friendly organzation, how gorwing the organization forced us to work with Conways law, as well as a deep dive into the bounded context of personalization.

Keeping track of user progress and favorite shows is the responsibility of Personalization domain, with high performance requirements and surprisingly

complex business rules. With new business rules and changing architecture, Personalization was in dire need of work. Combining FSharp and its typesystem and immutability with Orleans, an open source Virtual Actor platform for distributed high-scale computing applications, provided us with functional programming with OO principles in a fast and scalable platform. I'll show why we chose this path, the benefits we gained going from C# to F# and some of the lessons learned building on an actor model.

 
 

Outline/Structure of the Talk

An introduction to NRK, where we were and the problems we had.

How a growing organization required us to change the way we worked. Conways law, DDD and working togehter.

A deeper look at personalization and why it is difficult.

How we ended up with FSharp and Orleans.

Functional takeaways and actor model lessons learned.

Learning Outcome

Takeaways from a growing organization on how and why we went from a C# monolith to domain specific services. And why and how we ended up with functional programming and actor modelling for one of the domains.

Target Audience

If you're interested in a journey from C#/OO to F#/Functional with DDD

schedule Submitted 1 month ago

Public Feedback

comment Suggest improvements to the Speaker

  • Liked Kunjan Dalal
    keyboard_arrow_down

    Kunjan Dalal - Gentle introduction to TypeLevel stack (lots of Cats) via Web Development

    Kunjan Dalal
    Kunjan Dalal
    Founder
    Fuzzy Cloud
    schedule 1 month ago
    Sold Out!
    45 Mins
    Tutorial
    Beginner

    People always talked about beautiful apps, be it web or mobile. Create a crazy number of frameworks to make your frontend work as fast as possible. But they mostly forget about the backend part, called the server-side application.

    TypeLevel stack provides wonderful sets of purely functional libraries to write backend code. A backend can be a simple monolith server or micro-service styled multi-server application. TypeLevel stack allows you to write your server code with less error and more confidence. TypeLevel stack has libraries for almost everything from doing Http to database access.

    In this talk, I will tell you why anyone should TypeLevel stack to build a backend application. I will also share little bit controversial opinionated way to arrange things. It will also showcase how composability of functional programming helps to write the scalable application.

  • Liked Kunjan Dalal
    keyboard_arrow_down

    Kunjan Dalal - From concept to creation in a week with Fabulous

    Kunjan Dalal
    Kunjan Dalal
    Founder
    Fuzzy Cloud
    schedule 1 month ago
    Sold Out!
    90 Mins
    Tutorial
    Beginner

    Having worked in mobile app development for years I can say one thing for sure: creating a mobile application is hard. Creating a cross-platform mobile application is even harder. Which is why I was interested when Fabulous came out.

    Fabulous is a new cross-platform mobile library which mixes Xamarin-Forms and Elm Architecture. The Elm language and architecture were not new to me. I had been using it for a year and it had left a positive impression on me. So, it was only natural that Fabulous attracted my attention. First time I tried it after it got launched, I wasn’t impressed by its performance, but recently I gave it another try for a production application and I was amazed. I was able to create a complete app.

    In this talk, I will tell you why I choose Fabulous instead of other Cross Platform mobile development options for my app. I will walk you through all the mobile-specific changes I made to get Fabulous working in a performant way for iOS and Android and explain to you how you can use in combination with third-party plugins.