[erlang-questions] Erlang Inside
Sat Dec 9 14:17:06 CET 2017
The NHS Spine 2 Core system was built on two Erlang products (Riak and
RabbitMQ). Almost all of the bespoke code is written in Python, but the
message-passing architecture of the system and the approach to managing
availability was directly inspired by reading about Erlang (in particular
1. There's a presentation that I gave at ICFP 2017 on Spine 2 and Erlang
here: http://martinsumner.github.io/presentations/spine2_erlang#/. The
architectural links between Spine 2 and Erlang aren't talked about much
publicly, as it was only really me as the lead engineer/designer who was
thinking about it. Spine 2 was a big transformational shock for NHS IT in
many ways, and so tended to grab headlines for reasons other than Erlang
2. Spine 2 provides the central data storage system and messaging system
for the NHS - covering electronic prescriptions (primary care), demographic
records, summary care records, subject access records, access alerting,
consent recording, distribution of pathology results, child protection
information, GP to GP record transfers, distribution of electronic
referrals and plenty more. It handles close to 50M messages on a busy day,
and holds around 2 billion records and documents.
3. Go live was August 2014 (replacing a system originally released July
2004), and the system is expected to have a long life, as it is deeply
integrated into a slow-moving eco-system.
4. There are around 80 servers running Erlang in the production system.
5. Most users are indirect behind other applications, but it is accessed
this way by more than 100K users each day, who are sat behind over 20K
application instances from more than 20 different integrated applications.
6. I no longer work directly on the project, which is now led on the
technology side by Azhar Nisar. For any formal comms about the project you
would be best contacting the comms team @NHSDigital.
7. Riak KV and RabbitMQ
8. There are two other projects in the NHS with Erlang inside (through
Riak KV). SuS Plus (http://content.digital.nhs.uk/sus/replacement) which
uses Riak for object storage. There is also a service for auditing the
application of opt-outs (
which is built on Riak and uses some bespoke Erlang for querying.
Following the demise of Basho, there are now a number of engineers within
the NHS Digital team who are building up Erlang skills, to ensure they can
effectively manage these services in house in the future. There is some
increasing awareness of the presence of Erlang inside of the NHS IT
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions