Skip to content

Choose a technology

Development language and Framework

The primary technology choice for new FCP services is Node.js with JavaScript deployed to CDP.

Delivery capability in the programme has been optimised for this technology stack.

For scenarios where Node.js is not appropriate, Defra's secondary framework and language is .NET and C#.

To deviate from Node.js and JavaScript, you must have an evidenced exception approved at SDA.

For full details of Defra's development framework standards, see the Defra Software Development Standards.

Node.js

For web based services, Hapi.js as the web framework. Other web frameworks such as Express are not permitted.

Code must be written in JavaScript linted with neostandard.

.NET

For scenarios where Node.js is not appropriate, .NET can be used with approval of SDA.

CDP and the FCP Platform have been developed to support .NET, however there are not as many supporting tools and libraries given the lower adoption of the technology.

Compute

CDP provides an abstraction over AWS Fargate, this is the primary compute technology for FCP services.

For services still hosted on FCP Platform, Azure Kubernetes Service (AKS) is the preferred compute technology.

Kubernetes deployments must be managed using Helm.

Databases

MongoDB is the primary database technology supported by CDP.

CDP also supports PostgreSQL for specific uses cases, however teams should use MongoDB in the first instance.

Azure Database for PostgreSQL is the only database that is fully supported by the FCP Platform.

Code first migrations

When working with PostgreSQL, Liquibase is the approved tool for managing database schema changes. Both CDP and FCP Platform support Liquibase.

Whilst technologies such as Sequelize and Entity Framework can be used, they should not be responsible for managing database schema changes.

Messaging

SNS and SQS are the only supported messaging technologies when deploying to CDP.

Azure Service Bus is the only supported messaging technology when deploying to the FCP Platform.

Caching

Redis is the approved caching technology.

Storage

S3 is the approved storage technology when deploying to CDP.

Azure Blob Storage, Azure File Storage and Azure Table Storage are the supported storage technologies when deploying to the FCP Platform.

Blob Storage should be favoured over File Storage where possible due to it's superior local development experience.

Containers

Docker is the approved container technology.