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.