Harald Schult will be presenting the following session
filter_list help_outline
  • Harald Schult Ulriksen

    Harald Schult Ulriksen - From C# monolith to functional actors with Orleans and F#

    45 Mins

    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.

1. What got you into Functional Programming (FP)?

At my customer, NRK (Norwegian Broadcasting Corporation), the developers have been free to choose language for smaller solutions on their own. F# have slowly gained track over the last few years, starting out in MVP's and innovation projects. As a push towards functional programming they did an in house workshop for their own developers based on Scott Wlaschin's Domain Modelling Made Functional. We're also working with a legacy C# based domain model, with broad generic abstractions. As we strangle bit by bit of it, implementing the new parts in F# makes very much sense for us as it is a lot easier to make illegal states impossible and also refining and refactoring the new model is just a lot faster.

2. What has been your best moment or highlight working with FP?

The F# type system has made it a joy to refactor and evolve our models as we discover new realities or add new functionality.

3. What are some of the greatest challenges of working with FP?

As a self-taugth C# developer (and before that vb.net

4. All the mainstream programming languages are adding functional programming features. Most new languages and frameworks are strongly influenced by FP. What is your advice to object-oriented programmers?

Learn a new language. Learning a new language have made me enjoy programing a lot more and shown me that there are perhaps better tools out there.

5. What will be some of the key takeaways from your sessions at the conference?

NRK has a great story on how they have grown the organzation, which fits with  autonumous teams, and how they are now adopting functional programming. And I also hope it will create curisity and excitement to try out and build somehting using actor model.

6. The conference has more than 50 sessions. Which ones are you most looking forward to attending and why?

Designing Elixir systems with OTP and the introduction to functional programming using Haskell are high on my list. With mostly F# and a bit of Clojure experience I am very keen to get to know other functional languages.