Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

As mentioned above ranges of keys will be reserved for different usages.

 

Kafka open source  (0x000)
0x00000000-0x0000FFFF Kafka open source
0x00010000-0x000FFFFF RESERVED
Local (0x001)
0x00100000-0x0010FFFF Local use - Infrastructure
0x00110000-0x0011FFFF Local use - Client
0x00120000-0x0012FFFF Local use - Stack/Middleware
0x00130000-0x0013FFFF Local use - Application
0x00140000-0x0014FFFF Local use - User 
0x00150000-0x001FFFFF RESERVED
Open (0x002)
0x00200000-0x0020FFFF Open use - Infrastructure
0x00210000-0x0021FFFF Open use - Client
0x00220000-0x0022FFFF Open use - Stack/Middleware
0x00230000-0x0023FFFF Open use - Application
0x00240000-0x0024FFFF Open use - User 
0x00250000-0x002FFFFF RESERVED
Testing (0x003)
0x00300000-0x0030FFFF Testing - Infrastructure
0x00310000-0x0031FFFF Testing - Client
0x00320000-0x0032FFFF Testing - Stack/Middleware
0x00330000-0x0033FFFF Testing - Application
0x00340000-0x0034FFFF Testing - User 
0x00350000-0x003FFFFF RESERVED
Reserved
0x00400000-0xFFFFFFFF RESERVED
From this perspective we would have the following:
  • A kafka header used in the kafka open source distribution could have the value of 0x00000010 (10).
  • A header used internally at organisation X would fall under Local. If it was something used by infrastructure, like tracing, that could use 0x00100010 (1048592)
  • A header used by an open source project somebody is working on, that they just want to put out there (without coordination) could start using a value of 0x00220010 (2228240) if it was a plugin for annotating the location on a message.
  • An application that was testing whether it can use headers for a new feature it's developing could pick a header with key 0x0034010 (3407888).
  • The Kafka open source number space is coordinated via the Apache Kafka opensource project.  A class would list all possible headers, their numbers and their string equivalents (for output/logging/etc).
  • A Local organization is in charge of coordinating it's local number space. It would be in charge of writing a text file, a class or a service to coordinate who gets what numbers when.
  • In the open internet you can grab any number in the Open space but should expect no guarantees that other people may or may not be using that number.
  • When you're doing testing you can safely grab a number in the testing space and be assured that you won't collide with an official system header.  It's still possible to collide with other testing headers, but no production system should depend on these headers.

Sample register that would end up having in the open source space.

...