Reserved route names

The Mercury foundation code is written using the same core API and each function has a route name.

The following route names are reserved. Please DO NOT use them in your application functions to avoid breaking the system unintentionally.

Route Purpose Modules
actuator.services Actuator endpoint services platform-core
elastic.queue.cleanup Elastic event buffer clean up task platform-core
distributed.tracing Distributed tracing logger platform-core
system.ws.server.cleanup Websocket server cleanup service platform-core
http.auth.handler REST automation authentication router platform-core
event.api.service Event API service platform-core
stream.to.bytes Event API helper function platform-core
no.op no-operation placeholder function event-script
system.service.registry Distributed routing registry Connector
system.service.query Distributed routing query Connector
cloud.connector.health Cloud connector health service Connector
cloud.manager Cloud manager service Connector
presence.service Presence signal service Connector
presence.housekeeper Presence keep-alive service Connector
cloud.connector Cloud event emitter Connector
init.multiplex.* reserved for event stream startup Connector
completion.multiplex.* reserved for event stream clean up Connector
async.http.request HTTP request event handler REST automation
async.http.response HTTP response event handler REST automation
cron.scheduler Cron job scheduler Simple Scheduler
init.service.monitor.* reserved for event stream startup Service monitor
completion.service.monitor.* reserved for event stream clean up Service monitor

Optional user defined functions

The following optional route names will be detected by the system for additional user defined features.

Route Purpose
additional.info User application function to return information
about your application status
distributed.trace.forwarder Custom function to forward performance metrics
to a telemetry system
transaction.journal.recorder Custom function to record transaction request-response
payloads into an audit DB

The additional.info function, if implemented, will be invoked from the "/info" endpoint and its response will be merged into the "/info" response.

For distributed.trace.forwarder and transaction.journal.recorder, please refer to Chapter-5 for details.

No-op function

The "no.op" function is used as a placeholder for building skeleton or demo app for an event flow use case. You may use the "preload-override.yaml" configuration to add alias route names to the "no.op" function.

Reserved event header names

The following event headers are injected by the system as READ only metadata. They are available from the input "headers". However, they are not part of the EventEnvelope.

Header Purpose
my_route route name of your function
my_trace_id trace ID, if any, for the incoming event
my_trace_path trace path, if any, for the incoming event

You can create a trackable PostOffice using the "headers" and the "instance" parameters in the input arguments of your function. The FastRPC instance requires only the "headers" parameters.

// Java
PostOffice po = new PostOffice(headers, instance);

// Kotlin
val fastRPC = FastRPC(headers);


Appendix-I Home Appendix-III
Application Configuration Table of Contents Actuators, HTTP client and More