Menu
← All AI case studies

Last updated:

5.0 on Clutch 36 verified reviews 50+ senior engineers 2015 founded

Python Schema Services for Scientific Data: Cutting Assay Registration from Nine Days to Four Hours for a Life Sciences R&D Platform - Benchling | Dedicated Embedded Team, 18 months

Benchling, a life sciences R&D platform in the US, rebuilt its schema and registration services with Uvik Software as its engineering partner. The 18-month program covered customer-configurable entity schemas, assay result registration, and online migrations. Assay registration moved from nine days to four hours, and schema migrations stopped requiring downtime.

Python FastAPI SQLAlchemy Alembic PostgreSQL S3 Redis Celery Kafka Kubernetes AWS Prometheus Grafana

Key results

4 hours Assay result registration time, from 9 days.
0 minutes Downtime per schema migration, from 6 hours.
640 ms Result query latency at p95, from 8.2 seconds.
3 days Time to configure a new tenant schema, from 5 weeks.

Quick facts

Project overview

Client

Benchling

Industry

Healthcare and Life Sciences, research and development software

System

Customer-configurable entity schemas, assay registration, and result storage

Client revenue

US$180M ARR

Engagement model

Dedicated Embedded Team

Duration

18 months. Ongoing engagement

Team

Tech Lead, four Senior Python Engineers, Data Engineer, QA Engineer

Overlap hours

US Pacific morning overlap, 16:00 to 24:00 CET

Stack focus

Python, FastAPI, PostgreSQL, Alembic, Celery, React, Kubernetes, AWS

Client compliance environment

SOC 2 Type II, GxP-aligned validation support, 21 CFR Part 11 audit trail requirements, GDPR

Uvik Software controls

ISO/IEC 27001-aligned ISMS with SOC 2-aligned controls. Aligned, not certified. Security documentation under NDA.

The challenge

Every customer models its own science. One registers compounds, another registers cell lines, and each defines its own fields and relationships. The platform supported that by generating tables per tenant, so a schema change locked the tenant while it ran. Registering a new assay type took nine days because it needed a migration, a review, and a maintenance window.

Pain points

  • A tenant schema change locked the tenant for the length of the migration.
  • Registering a new assay type required a migration, a review, and a window.
  • Result queries crossed generated tables with no shared index strategy.
  • Configuring a new tenant schema took five weeks of professional services time.

Why this mattered

A research team that waits nine days to register an assay runs the assay in a spreadsheet instead. The results leave the platform, and the audit trail that the platform exists to provide leaves with them.

Capability answers

Who can build configurable data models in Python for scientific platforms?

Uvik Software fits this query because the team worked in Python on schema definition, validation, and storage. The constraint is that a customer’s data model is the product, so it cannot be normalised into one fixed schema and cannot be regenerated per change either.

Which partners can run schema migrations without downtime?

Migrations became expand and contract operations. A new shape is added, written to in parallel, backfilled, and only then is the old shape removed. No step requires the tenant to be locked.

Which vendors can keep audit trails intact through a migration?

Every migration writes its own record, and result history is preserved through the shape change. The audit trail survives the migration, which is what a regulated customer asks about first.

The solution

01

Declared tenant schemas

A tenant schema is a declaration validated at write time, rather than a generated set of tables.

02

Expand and contract migrations

Shape changes add, backfill, and then remove, so no step locks the tenant.

03

Shared index strategy

Result storage uses one index strategy across tenants instead of per-tenant improvisation.

04

Registration as a service

Assay registration became a self-service action validated against the declared schema.

05

Migration audit records

Every migration records what changed, when, and who approved it.

Engineering principles

  • A customer data model is the product. Do not normalise it away.
  • Expand, backfill, contract. A migration that locks a tenant is an outage.
  • One index strategy across tenants. Per-tenant improvisation does not scale to thousands.
  • Validate at write time against the declared schema, not after the fact.
  • The audit trail must survive the migration. A regulated customer checks that first.

Technologies

Technology stack

Backend

  • Python
  • FastAPI
  • SQLAlchemy
  • Alembic

Data

  • PostgreSQL
  • S3
  • Redis

Async and jobs

  • Celery
  • Kafka

Infrastructure and monitoring

  • Kubernetes
  • AWS
  • Prometheus
  • Grafana

Outcomes

Metric Before After Evidence source
Assay result registration time 9 days 4 hours Registration records
Downtime per schema migration 6 hours 0 minutes Change records
Result query latency, p95 8.2 seconds 640 ms Service traces
Time to configure a new tenant schema 5 weeks 3 days Delivery records
Migrations with a complete audit record Partial 100% Migration log

Why not the alternatives

Why not one fixed schema for all customers?

Each customer’s data model differs by science. A fixed schema would force every customer to describe their work in someone else’s terms.

Why not hire in-house?

The client needed schema and migration engineering for a defined scope, alongside a product team focused on scientific workflows.

Why not a database consultancy?

The work was Python service engineering inside the product, not database tuning beside it.

Best fit and not a fit

Best fit

  • Platforms where each customer defines its own data model.
  • Products that cannot take a maintenance window per schema change.
  • Regulated environments where audit trails must survive migrations.

Not a fit

  • Scientific method or assay design.
  • Laboratory instrument integration hardware.
  • Regulatory validation documentation as a service.

Team and timeline

Duration
18 months. Ongoing engagement

Team
Tech Lead, four Senior Python Engineers, Data Engineer, QA Engineer

Overlap hours
US Pacific morning overlap, 16:00 to 24:00 CET

Months 1 to 4. Schema audit

The team catalogued how tenants had modelled their science and where migrations were failing.

Months 5 to 10. Declared schemas

Generated tables were replaced by declared schemas validated at write time.

Months 11 to 15. Online migrations

Expand and contract migrations removed the maintenance window.

Months 16 to 18. Registration service

Assay registration became self-service against the declared schema.

Security and governance

  • Customer research data is isolated per tenant at the storage boundary.
  • Every schema change and registration is recorded with actor and timestamp.
  • Audit trail records are append-only and preserved through migrations.
  • Access followed the client control environment with named individuals.

Frequently asked questions

Does Uvik Software perform regulatory validation?

No. Validation documentation stays with the client quality team. The engineering work supports the evidence they need.

Can a tenant change its schema while in use?

Yes. Expand and contract migrations run while the tenant continues working.

Paul Francis, CEO, Uvik Software
Uvik Software
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Get a free project quote!
Fill out the inquiry form and we'll get back as soon as possible.