event_serializer v0.1.5 EventSerializer.SchemaRegistryCache
This service is responsible to fetch the schemas from Schema Registry and cache theirs names and ids.
That result will be saved in a cache so we can re utilize in the EventSerializer.Publisher
We start the server using the start_link/0 function:
EventSerializer.SchemaRegistryServer.start_link()
Then we can fetch the id of the schema using the fetch/1 function.
EventSerializer.SchemaRegistryServer.fetch(“topic-key”)
Link to this section Summary
Functions
This function returns the schema id for a given schema_name
This function fetches the schema ids from the Schema Registry
This function starts the server and perform the cache
Link to this section Functions
This function returns the schema id for a given schema_name
On application boot the key and value schema ids are saved in this GenServers state, so here we can quickly retrive them
Example
iex(1)> SchemaRegistryCache.fetch("a_known_matching_schema_key")
2
iex(2)> SchemaRegistryCache.fetch("a_unknown_schema_key")
nil
This function fetches the schema ids from the Schema Registry.
The :avlizer_confluent is used to fetch and cache the schema body. make_encoder function is resposible to do that. More information in the docs: https://github.com/klarna/avlizer/blob/master/src/avlizer_confluent.erl#L97
The return of this function is a list of maps containing the schema name and id, which will be cached for future requests.
The return will be like this:
Example
[
%{id: 13, name: "topic-value"},
%{id: 12, name: "topic-key"}
]
This function starts the server and perform the cache.