Skip to content

account.update

Direction: server → modules. External Moleculer event name: account.update.

Source and occurrence

C++ payload: AccountRecord. Internal EventBus name: account.push.

An account.push internal event carrying AccountRecord and EV_RECORD_UPDATE is formatted by Router. Any update published through this source can produce it, even if these exported trading fields did not change.

There are no previous trading-parameter values in this contract. Brand is resolved from the current group manager; no passwords, investor passwords, names or contact details are exported.

JSON payload

The payload is flat; there is no data wrapper. All listed fields are emitted.

{
  "event_id": "a89e743cf46a4855986aa6769e47a075",
  "event_code": 1,
  "occurred_at": 1789080000,
  "schema_version": 1,
  "login": 10001,
  "group": "real\\standard",
  "brand": "ion4",
  "leverage": 100,
  "enable": 1
}
Domain field JSON type
login integer
group string
brand string
leverage integer
enable integer

Common fields: event_id (32-character random hex string), event_code (original integer code), occurred_at (Unix seconds), schema_version (integer, currently 1).

occurred_at uses the source timestamp; zero remains zero. Margin uses transition time.

Subscription and delivery

Subscribe through the module's normal Moleculer event handler for account.update. Enabled with server nats.enable. Publication is asynchronous, fire-and-forget, without ACK, retry or durable replay. Queue limit: 4096 business messages; JSON limit: 16 KiB. New messages can be dropped at either limit; order is not guaranteed. event_id supports consumer deduplication, not exactly-once delivery.

See shared outbound rules for lifecycle, observability and trust limits. See outbound catalogue for other event families.