Components

A component is a subdomain or a subproduct unit within a product.

andy x logo

Overview

A component is a subdomain or a subproduct unit within a product. The configuration policies set on a component applies to all topics created in that component. A product may create multiple topics via Andy X Cli, self-administration using the REST API or Andy X Clients. For instance, an application with different domains can create a separate components for each application.

Names for topics in the same comonent will look like this:

  andyx://{tenant}/{product}/{component}/{topic}
  andyx://tenant/application1/clients/topic-01
  andyx://tenant/application1/clients/topic-02
  andyx://tenant/application1/clients/topic-03

Component

A component is a subdomain or a subproduct unit within a product. The configuration policies set on a component applies to all topics created in that component.

To each component in a product in an Andy X instance you can assign:

  • An authorization schema

When a Component is created in Andy X Cluster inside a Product, all configurations for that component will be replicated to all nodes across Andy X Cluster. As you know already a component have it own authorization schema, Retention Policies and other configurations like the table below.

Component will inherit all settings from the Product, but users can set different settings for the component it self, which will ignore settings from the Product. In case of you would like to expose data from a component to some speficic clients without granting access to entire Product or Tenant.

Settings

Settings KeysDescription
IsTopicAutomaticCreationAllowedIf this property is set, new topics will be able to be created from the client side, if not new topics can be created only from Andy X Cli or Buildersoft Cloud
IsAuthorizationEnabledIf this property is set, it will require every client of this component to provide a Component Key and Secret, if not clients will have to provide Product or Tenant Authorization Settings
EnforceSchemaValidationIf this property is set, nodes will validate schema for each message before storing it
IsSubscriptionAutomaticCreationAllowedIf this property is set, new subscriptions will be able to be created from the client side, if not new subscriptions can be created only from Andy X Cli or Buildersoft Cloud
IsProducerAutomaticCreationAllowedIf this property is set, new producers will be able to be created from the client side, if not new producers can be created only from Andy X Cli or Buildersoft Cloud

Component Retention Policies

Each Component in a Product in an Andy X instance can have their own Retention Policies for Message TTL. There can be only two different configurations of TTL which are

  • SOFT_TTL,
  • HARD_TTL

SOFT_TTL, when the time come to remove a list of messages from the topics, it will check the entries with Subscription logs it these messages where acked from Subscriptions, if not these messages will not be deleted until messages are acked from all Subscriptions created.

HARD_TTL, in case of HARD_TTL, it will not check if Subscriptions have acked the messages. Messages will be deleted regardless if the messages are acked or not.

SOFT_TTL should not have a TTL greater than HARD_TTL. For a component, both TTL types can be configurated.

In case if you have Retention Policy created in Tenant, Product and Component level. The rules will of executions will be as following.

  • Foreach topic in a component with retention policy from Tenant to Component, only Component Retention Policies will apply.
  • Foreach topic in a component with retention policy from Tenant to Product, only Product Retention Policies will apply.
  • Foreach topic in a component with retention policy only configured on Tenant level, only Tenant Retention Policies will apply.