Specification

Introduction

Develop your own IP corresponding to Diffgram specifications.

Specifications is the most flexible, requiring only that named Specifications are met. Everything else, from the language being used, to design patterns, etc. is generally up to you.

The main context is that you may want to develop a specific part of Diffgram, but then still use the rest of the concepts and system. For example, extending a certain interface, performance of a specific sub system, etc. With Specifications you can do that, and then still "go back" to regular Diffgram for the rest.

Use Case Examples

  • Develop in a different language from Diffgram
  • Develop with different frameworks or dependences from Diffgram
  • Develop completely novel IP
  • Develop a completely custom frontend
  • Develop a different backend processing method
  • Optimize a sub component

Components vs Specifications

Components provides a standardized way to develop with Diffgram source code.
Specifications provides a abstracts, concepts, and standards, upon which you can develop.

Types

📘

Preview

The latest updates in raw form.

We continuously refine and define technical Types (definitions of system objects) Those definitions are placed in the industry standard OpenAPI 3.0 (Swagger) specifications.

The short story here is you can come to Diffgram and say “hey I like Diffgram, but we our frontend teams mostly use React/PureJS/ABC” or “the XYZ teams don’t know/like python, they mostly use Java/Go/ABC language…” and use the Diffgram Specification successfully.

So you can bring your own expectations, languages, etc., and as long as that maps to the standard OpenAPI Types we provide, you can build with Diffgram.

Naturally this takes investment, time, etc. but the end result is that it’s your own IP, your own know-how, your own system. It’s something you can back serious workloads with. It’s something that can be an integral part of your technology stacks for years and decades to come. It’s years of R&D better then trying to do this from scratch.

Open Source and Specifications

Due to the nature of specifications, we don't expect that your code will integrate or ship as part of the core Diffgram codebase. As appropriate, if you can open source your code, it can be stored and referenced separately.

Getting Started

🚧

Advanced Users

Specification is for the most advanced users. We recommend you are very familiar with Diffgram Baseline before starting.

See

  1. Contributing
  2. Typescript class definitions
  3. OpenAPI type definitions