Features

1 minute read
Edit on GitHub
  • ☑ Event-driven Transaction Handling: The Resource Aggregate operates based on fine-grained event streams, enabling transactional operations on a device’s resource.
  • ☑ Event Persistence: Events describing actions within the Resource Aggregate are persisted in the EventStore, creating an append-only log of the resource’s state changes.
  • ☑ Event Deduplication: The Resource Aggregate deduplicates events to prevent duplicate events from being emitted when a command arrives.
  • ☑ Event Publication: Persisted events in the EventStore are published to the EventBus for distribution to other system components or services interested in resource-related events.
  • ☑ Optimistic Concurrency Control: The Resource Aggregate utilizes the optimistic concurrency control method to prevent conflicts during writes to the EventStore.
  • ☑ Snapshot-based State Optimization: Implementing snapshot functionality to capture and store periodic snapshots of the resource’s state, enhancing performance and reducing the need for event replay during recovery processes.
  • ☑ Command Validation: Incoming commands to the Resource Aggregate are validated to ensure their correctness and adherence to defined rules.
  • ☑ Command Expiration: Each command has a valid until time and requires a confirmation event. If the confirmation event is not received before the valid until time, the pending command is considered invalid and discarded.
  • ☑ Cancel Commands: The Resource Aggregate supports the cancellation of pending commands, allowing the gateway to cancel a command that has not yet been processed by the Resource Aggregate.
  • ☑ Pending Command Execution on Device Online: Commands that are awaiting the device’s online status are immediately processed when the device comes online.
  • ☑ Hub Identification in Events: Add the hub ID to events to enable the identification of the hub that generated the event.
Jun 14, 2023

Get started

plgd makes it simpler to build a successful IoT initiative – to create a proof of concept, evaluate, optimize, and scale.

Get Started Illustration Get Started Illustration