Concept

 

Fundamental Principles

DAXP (Data & Attribute eXchange Protocol) is a modern communication protocol based on data exchange in the tag=value format.
Every message exchanged between microservices or applications is called a communication message, which follows a well-defined structure and can be dynamically interpreted by the receiver — without modifying the application code.

The protocol is inspired by the FIX Protocol, yet it extends its functionality by introducing dynamic definition of parameters, attributes, and message types, making DAXP a more flexible and future-oriented solution.

Core Principles

  • Tag = Value Format - A fast, compact, and human-readable structure for data exchange — ideal for high-performance communication.
  • Dynamic Attribute Dictionaries - Applications can dynamically publish and interpret their own tag definitions — including name, type, description, and validation rules.
  • Flexible Communication Model - Supports both synchronous and asynchronous messaging — between backend services, desktop GUIs, IoT devices, or cloud components.
  • Self-Describing Data - Every new component can share its parameter dictionary, instantly recognized by other applications without manual updates.
  • Version Agnostic - Different software versions can communicate seamlessly, even when message formats evolve.

 

Why Choose DAXP?

Beyond Microservices DAXP connects desktop, web, and backend applications, creating a common data language across the entire ecosystem.

  • Dynamic Integration - Add new parameters or modules without modifying APIs or rebuilding clients.
  • Rapid Development - No need to regenerate JSON, Avro, or ProtoBuf schemas — DAXP defines itself dynamically.
  • Technology Neutrality - Works across any language or framework — Java, Python, C#, JavaFX, and more.
  • Smart GUI Generation - User interfaces can automatically create forms and controls from received parameter dictionaries.
  • Data-Driven Logic - Validation rules and dependencies are transmitted as data, not as code.

 

Tag Ranges and Dictionaries

DAXP uses a system of identifiers (tags) that uniquely define every element in a message:

Range Purpose DEC
1–255 Reserved for system and control tags, such as:
• message type
• data type definitions
• parameter validators
• field dependencies
• application attribute dictionaries


257–65535 Reserved for user- or application-defined tags

Each microservice, application, or module can define its own tags and their attributes — either in code or in an external configuration file.

 

Dynamic Attribute Dictionaries

DAXP allows applications to transmit dictionaries of tags and attributes on demand — using the same tag=value format.
This mechanism enables applications to:

  • exchange their parameter definitions,
  • send lists of permissible values, ranges, and descriptions,
  • update data structures dynamically, without restarting the system.

 

This architecture supports features like dynamic GUI generation, where an interface automatically adapts to a new version of a microservice and its parameters.

DAXP allows users to:

  • define custom message types (starting with the letter U or u),
  • create custom value lists, data types, and validators,
  • dynamically exchange dictionaries between systems.

 

As a result, communication between microservices becomes:

  • universal – independent of programming language or platform,
  • dynamic – extendable in real time,
  • lightweight – based on the simple tag=value format, without complex JSON or XML serialization.