Please log in to watch this conference skillscast.
Writing code in an environment as large and complex as Facebook involves talking to many different back-end services, including databases, search engines, caches, and so forth. Each of these data sources has different characteristics and requires different access patterns to make best use of its resources.
Typical front-end code will need to access many of these resources concurrently, but the programmer doesn't want to be concerned with the details of how best to access each resource. Moreover, we want to be able to write our code in a modular way and yet have concurrent accesses to the back-end services automatically batched and overlapped for us.
This talk describes a system that we're building using Haskell that allows the front-end programmer writing business logic to access all the back-end services in a concise and consistent way, while the system handles batching and overlapping of requests to multiple data sources behind the scenes. The programming model is one of implicit concurrency: there's no fork or async operation, all external data access is implicitly performed in parallel where possible.
YOU MAY ALSO LIKE:
- Keynote: How to Deploy your Haskell Code Hundreds of Times a Day (SkillsCast recorded in October 2018)
- Haskell eXchange 2022: Novice Track (Online Conference on 7th December 2022)
- Haskell eXchange 2022: Online Conference (Online Conference on 8th - 9th December 2022)
- Haskell: Why and How the External STG Interpreter is Useful (SkillsCast recorded in December 2021)
- Keynote — Haskell: What To Do When Success Can't Be Avoided (SkillsCast recorded in November 2021)
The Haxl Project at Facebook
Simon Marlow
Software Engineer
Meta