This repository contains specifications for the Pipeline API and some 51Degrees products.
Name | Description |
---|---|
Pipeline Specification | Specification for the Pipeline API and its operation. This covers core functionality. |
Device Detection Specification | Specification for the Device Detection service. This builds on the concepts and features defined in the Pipeline specification. |
Data Model Specification | Details of the data model used by Device Detection and by other services in the future. |
- These specifications are written to be language agnostic. The precise details of how to implement features is often not specified. This allows implementers to choose the most appropriate mechanism for the target language. For example, Java and .NET developers would be familiar with the use of a fluent builder to create instances. However, a Node.JS developer would not normally use this approach.
- Java and
.NET are considered the reference
implementations. At least one of these SHOULD be reviewed by the reader to
see what a real-world implementation of the specification looks like. There
is also a section
containing reflections on the architectural choices made when creating the
Java and .NET versions. This could be helpful when designing future implementations.
- Two of the key features that informed major design decisions were support for processing using native binaries and the ability to easily swap processing from on-premise to cloud. In some cases, these feature prevented the implementations from following more idiomatic approaches.
- URLs in these specifications are fixed. Code comments SHOULD include references to these URLs in order to avoid re-writing the same descriptions and definitions in multiple places.
- CI/CD scripts and the like are out of scope. However, implementers will need to be mindful of the requirement to have the ability to build and test the software in a non-interactive CI/CD environment. See 51Degrees CI/CD documentation for more details.