All methods in vault-account are triggered by gRPC calls, thus Kafka is not a prerequisite for initiating any actions. Kafka is used to communicate events between microservices. Events are:
generated by vault-account for the vault-account-processor to execute asynchronous jobs.
generated by vault-account-processor for further operations (such as account migrations).
published eagerly by vault-account if the config flag events_disable_eager_publishing is set to FALSE.
published at least once for those recorded in the event journals tables (using the event orchestrators and journal pollers).
picked up by the Core Streaming service to be streamed out to the public.
Account processor events are the most relevant to the communication between vault-account and vault-account-processor. Account processor events for account updates are published by vault-account to the internal topic vault.core.accounts.account_processor.events in an eager manner if enabled; the account-events-orchestrator, account-journal-poller, plan-events-orchestrator and plan-journal-poller are required to publish all account processor events for account updates and plan updates eventually. vault-account-processor awaits jobs by listening to the activity on this topic.
The processor also uses the topic vault.core.accounts.account_update_batch_completed in order to manage account migrations and account update batches.
Non-event topics are also used.