Ymyry9lbokp6x7kk3cd7
SkillsCast

Taming a Huge, Sprawling System with Clojure

4th December 2017 in London at CodeNode

There are 23 other SkillsCasts available from Clojure eXchange 2017

Please log in to watch this conference skillscast.

670768842 640

HealthUnlocked is a social network for health: the second biggest health website in the UK, with 4 million visits per month. They have also built and maintain a number of other applications with partner organisations such as Macmillan Cancer Support. Over the seven years or so that the company has been around (and the four years they've been using Clojure) they have has developed a sprawling, complex system of interdependent apps that is best described by the name "distributed monolith".

Early this year Russell and the team decided it was time to invest some serious effort into refactoring and rewriting these systems to make changes easier, safer, and faster. They also had to find a way to do this without compromising their ability to deliver new features. During this talk, you will discover the practices and architectural choices they found helpful, and the lessons learned along the way.

Things the talk will explore:

  • System architecture

  • Moving from a "distributed monolith" to a small set of well-factored, cohesive monoliths

  • Isolating DB access to a single (multi-app) repository

  • Defining interfaces between services using shared schema code

  • Moving from horizontal to vertical slices

  • Testing

  • What are the purpose of tests when you have a REPL?

  • Finding a middle-ground between example-based and property-based testing

  • Using docker-compose to spin up instant, complete dev and test environments

YOU MAY ALSO LIKE:

Thanks to our sponsors

Taming a Huge, Sprawling System with Clojure

Russell Dunphy

Russell is HealthUnlocked's Head of Engineering. After language-hopping quite a bit in his early career, he found Clojure a little over four years ago and since then he is happy to report that the grass has stopped looking greener on the other side. (Except, idk, Erlang/Elixir is pretty cool. And Elm is interesting...)

SkillsCast

Please log in to watch this conference skillscast.

670768842 640

HealthUnlocked is a social network for health: the second biggest health website in the UK, with 4 million visits per month. They have also built and maintain a number of other applications with partner organisations such as Macmillan Cancer Support. Over the seven years or so that the company has been around (and the four years they've been using Clojure) they have has developed a sprawling, complex system of interdependent apps that is best described by the name "distributed monolith".

Early this year Russell and the team decided it was time to invest some serious effort into refactoring and rewriting these systems to make changes easier, safer, and faster. They also had to find a way to do this without compromising their ability to deliver new features. During this talk, you will discover the practices and architectural choices they found helpful, and the lessons learned along the way.

Things the talk will explore:

  • System architecture

  • Moving from a "distributed monolith" to a small set of well-factored, cohesive monoliths

  • Isolating DB access to a single (multi-app) repository

  • Defining interfaces between services using shared schema code

  • Moving from horizontal to vertical slices

  • Testing

  • What are the purpose of tests when you have a REPL?

  • Finding a middle-ground between example-based and property-based testing

  • Using docker-compose to spin up instant, complete dev and test environments

YOU MAY ALSO LIKE:

Thanks to our sponsors

About the Speakers

Taming a Huge, Sprawling System with Clojure

Russell Dunphy

Russell is HealthUnlocked's Head of Engineering. After language-hopping quite a bit in his early career, he found Clojure a little over four years ago and since then he is happy to report that the grass has stopped looking greener on the other side. (Except, idk, Erlang/Elixir is pretty cool. And Elm is interesting...)

Photos