Down the Oregon Trail with Functional C# & RavenDB's Sharding Architecture

with Simon Painter & Oren Eini

Tuesday, 14 June 2022

Down the Oregon Trail with Functional C# - with Simon Painter

In 1971, three students from Minnesota thought they could liven up a history lecture by creating a computer game for the students to play, and after several days of work in HP Time Share BASIC, they came up with what turned out to be a significant milestone in the history of computer games - Oregon Trail.

Oregon Trail is often regarded as one of the first great computer games, as well as being the originator of a franchise that is still running to this day. It was effectively also one of the first instances of both Shareware and a Commercial home release (depending on the version).

Simon's interest though, isn't just in historical computer games, it's also .NET and Functional Programming. Simon uses this as a worked example of one of his passions - Functional Programming in C#! The challenge he set myself was to redevelop Oregon Trail into C# using the following restrictions:

  • Near 100% unit test coverage
  • No variables can change state once set
  • No statements (for, foreach, if, where, etc.) unless there literally was no way of avoiding them

He also demonstrates a few of the tricks Functional Programming can offer, like Higher-order functions, functional flows with simple Monads and Tail Recursion. There should also be a bit of retro computing fun, while we're at it.


RavenDB's Sharding Architecture - with Oren Eini

Sharding allows you to distribute your data between multiple nodes in your system. Sharding, alongside distributed consensus, stands at the pinnacle of distributed system design.

In this talk, Oren Eini, founder of RavenDB, discusses the sharding implementation of RavenDB in detail. We look at the various challenges and tradeoffs that were made in order to implement sharding and how the concept of sharding is expressed to the user, the impact on queries, transactions and performance.


Links


Sponsors

  • Everstack - Dan's company, helping organise and manage the user group
  • Corriculo Recruitment - Kindly covering the Zoom licence
  • JetBrains - Prize draw sponsor (any JB product the winner likes)
  • Manning Books - Prize draw sponsor (ebook of winner's choice)
  • Packt - Prize draw sponsor (ebook of winner's choice)