Zaiming (Stone) Shi 7c2f87fabe test: merge broker and router boot modules 2 tahun lalu
..
etc 541d03a0ba refactor(schema_registry): refactor schema registry app and modules 2 tahun lalu
include 541d03a0ba refactor(schema_registry): refactor schema registry app and modules 2 tahun lalu
priv 541d03a0ba refactor(schema_registry): refactor schema registry app and modules 2 tahun lalu
src c65db82b07 fix: bad error message when rule engine schema name is too long 2 tahun lalu
test 7c2f87fabe test: merge broker and router boot modules 2 tahun lalu
BSL.txt 541d03a0ba refactor(schema_registry): refactor schema registry app and modules 2 tahun lalu
README.md 541d03a0ba refactor(schema_registry): refactor schema registry app and modules 2 tahun lalu
rebar.config d911f7fbea fix: update gpb library to fix type error 2 tahun lalu

README.md

EMQX Schema Registry

EMQX Schema Registry for managing various of schemas for decoding/encoding messages.

To use schema in rule engine, a schema name should be passed to the SQL functions that decode/encode data, like:

SELECT
     schema_decode('sensor_notify', payload) as payload
FROM
     "message.publish"
WHERE
     topic = 't/1'

Using schema registry with rule engine

                      +---------------------------+
                     |                           |
 Events/Msgs         |                           |   Events/Msgs
 -------------------->           EMQX            |------------------>
                     |                           |
                     |                           |
                     +-------------|-------------+
                                   |
                             HOOK  |
                                   |
                     +-------------v-------------+           +----------+
                     |                           |   Data    |          |
                     |        Rule Engine        ------------- Backends |
                     |                           |           |          |
                     +------|-------------|------+           +----------+
                            |^            |^
                      Decode||            ||Encode
                            ||            ||
                     +------v|------------v|-----+
                     |                           |
                     |      Schema Registry      |
                     |                           |
                     +---------------------------+

Architecture

                              |              |
                       Decode |    [APIs]    | Encode
                              |              |
                              |              |           [Registry]
                       +------v--------------v------+
    REGISTER SCHEMA    |                            |
       INSTANCE        |                            |    +--------+
    ------------------->                            |    |        |
[Management APIs]      |       Schema Registry      ------ Schema |
                       |                            |    |        |
                       |                            |    +--------+
                       |                            |
                       +----------------------------+
                            /        |        \
                       +---/---+ +---|----+ +---\---+
                       |       | |        | |       |
      [Decoders]       | Avro  | |ProtoBuf| |Others |
                       |       | |        | |       |
                       +-------+ +--------+ +-------+

  • Register schema instance: adds a new instance of a schema of a certain type. For example, when the user may have several Avro or Protobuf schemas that they wish to use with different data flows.

Documentation

Contributing

Please see our contributing.md.

License

EMQ Business Source License 1.1, refer to LICENSE.