The Wellcome Collection digital platform, building APIs for searching and browsing our archive collections.
You can read documentation for our APIs at https://developers.wellcomecollection.org/.
You are free to copy, modify, and distribute Platform code with attribution under the terms of the MIT license. See the LICENSE file for details.
Wellcome are developing a new digital platform for Wellcome Collection, that will enable us to improve the experience we offer to readers and researchers. We also want to make it easier for third-party developers to build things with our data and collections.
This means providing programmatic access to our digital assets, metadata and web content by developing a simple, unified and coherent set of APIs.
We intend to be led by the needs of the user first, and to be pragmatic about technical decisions in that light. Prototyping is part of the process of discovering the shape of an eventual API.
We intend to develop in the open, so that others can learn from our mistakes and successes. We also want to be transparent on the state of work in progress and provide a forum to raise issues and discuss approaches.
Everything we create will be open-source, under an MIT license. We will package things that are useful to others as standalone components, so that they can be easily re-used outside of our platform.
Code for the platform is split across multiple repositories:
-
wellcometrust/aws_utils is a Python library containing AWS-related utilities that we use in our AWS Lambdas
-
wellcometrust/dockerfiles contains Dockerfiles for components of the platform, including most of our build system
-
wellcometrust/terraform-modules contains reusable Terraform modules that we use to define our infrastructure
The bulk of our code is written in Scala. To reduce build times in the main repo, we've pushed out some of our libraries into external repositories:
-
wellcometrust/scala-monitoring provides wrappers for sending CloudWatch metrics.
-
wellcometrust/scala-storage provides wrappers around S3 and DynamoDB, including our "Versioned Hybrid Store" for storing large objects.
-
wellcometrust/sierra-streams-source is a Scala library that provides Akka Streams from objects in a Sierra API. Sierra is the library management system we use at Wellcome Collection, and one of the data sources for the platform.