Event-Driven Architecture Style Evaluation

    1

    Evaluates Event-Driven Architecture: temporal decoupling, event stream topologies, ordering, and consistency trade-offs.

    $5

    Secure checkout via Stripe

    30-day refund guarantee

    Converts to your local currency at checkout

    Security scanned

    Works with the AI tools you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseOpenClawOpenClaw+21 more

    Event-Driven Architecture Style Evaluation

    Example session with this skill installed

    Evaluate the Event-Driven Architecture (EDA) style for our Multi-Bank Global Remittance & Wire Clearing Platform.

    • Subject: global-remittance-clearing-platform v3.0 (run-id: remittance-eda-style-001) clearing wires across 14 correspondent banking networks.
    • Deciders: Chief Enterprise Architect (David O'Reilly) and Head of Clearing Systems (Elena Rostova).
    • Scale & Volatility: Sustaining 18,000 peak transactions/sec; downstream foreign exchange (FX) and sanction screening partners experience up to 45s latency spikes.
    • Tension: Squads proposed synchronous REST/gRPC orchestration where gateways block until all partners acknowledge; David O'Reilly and Elena Rostova strictly reject synchronous orchestration, citing incident INC-4812 where a 30s partner latency spike exhausted gateway thread pools, cascading into a 40-minute outage that dropped $6.8M. They mandate an evaluation comparing EDA against Synchronous REST and Orchestrated Sagas, evaluating temporal decoupling, eventual consistency bounds, and partition ordering.

    Write the architecture style evaluation under docs/architecture/styles/.

    • Read your context and instructions
    • Compiled the event-driven architecture style

    Wrote docs/architecture/styles/eda-style-evaluation.md. Complete Event-Driven Architecture style evaluation establishing temporal decoupling, partitioned event stream topologies, eventual consistency boundaries, and operational complexity trade-offs.


    skill: eda-style

    Architecture Style Evaluation: Event-Driven Architecture [STYLE-EDA-001]

    Summary

    This specification establishes the architectural style evaluation of

    Event-Driven Architecture (EDA) for global-remittance-clearing-platform v3.0 under run ID remittance-eda-style-001. It evaluates architectural candidates for clearing international remittances across 14 correspondent banking networks sustaining 18,000 peak transactions/second where third-party partners experience up to 45-second latency spikes. The evaluation resolves the fatal temporal coupling demonstrated in incident INC-4812 (where synchronous REST request-reply orchestration across downstream partner APIs exhausted API gateway thread pools, inducing a 40-minute total clearing collapse that dropped $6.8M in transfers). The evaluation compares three primary architecture styles: Synchronous Request-Reply (REST / gRPC), Orchestrated Sagas with Distributed 2PC, and Asynchronous Event-Driven Architecture (Apache Kafka Event Mesh). It selects Event-Driven Architecture as the optimal style, specifying complete temporal decoupling, partitioned append-only event streams, transactional outbox publishing, idempotent consumer choreography, and sub-500ms eventual consistency convergence.

    Detailed Description

    Relying on synchronous request-reply remote procedure calls across distributed microservices introduces tight temporal coupling. In an interconnected financial network, the availability of the overall system becomes the mathematical product of the availability of every downstream dependency ($A_{\text{system}} = A_1 \times A_2 \times \dots \times A_n$). When a downstream sanction screening or foreign exchange partner slows down or fails, upstream caller threads block, backing up ingress connection queues until edge proxies fail completely. Event-Driven Architecture decouples transaction acceptance from downstream processing: ingress services emit immutable domain events to a durable distributed log, freeing client connections immediately while downstream consumers process events asynchronously at their own sustainable rate.

    Client Remittance Submission (18,000 tx/sec)
                             │
                             ▼ (Immediate Acknowledgement in < 15 ms)
    [ Ingress Gateway: Transactional Outbox Pattern ]
      ├── 1. Writes `RemittanceInstruction` to Local PostgreSQL Aurora
      └── 2. Emits `RemittanceRequestedEvent` to Transactional Outbox
                             │
                             ▼ (Debezium CDC Log Tailer in < 20 ms)
    [ Event Backbone: Apache Kafka Cluster (`remittance.events.v1`) ]
      ├── 48 Partitions Keyed by `debtor_account_id` (Strict FIFO Order)
      └── Multi-AZ In-Sync Replicas (`min.isr=2`, `acks=all`)
                             │
           ┌─────────────────┼─────────────────┐ (Temporal Decoupling)
           ▼ (Async Consumer)▼ (Async Consumer)▼ (Async Consumer)
    [ Sanction Screening ] [ FX Conversion ] [ SWIFT Gateway ]
      (45s Partner Delay)    (In-Memory Cache)  (Batch Settlement)
      Absorbed by Queue      Executes in < 5ms  Idempotent Consumer
    

    Criteria and weights

    CriterionWhy it matters hereWeightSource of the weight
    Temporal Decoupling & Fault IsolationDownstream partner outages (up to 45s) must never block customer ingress or crash gateways (INC-4812).0.40David O'Reilly (Chief Architect)
    Transaction Throughput Scalability (18,000 TPS)The platform must absorb volumetric holiday surges without saturating thread pools.0.30Elena Rostova (Head of Clearing Systems)
    Strict In-Order Processing by AccountLedger balance debits, credits, and holds must execute in exact chronological sequence.0.15Core Banking Regulatory Mandate
    Eventual Consistency & ReplayabilityDisconnected services must catch up seamlessly from persistent event logs upon reconnection.0.15Enterprise Resilience SLA

    Comparison

    Architecture Style CandidateCoupling ModelDownstream Outage ImpactThroughput CeilingEvaluation
    Option A: Synchronous Request-ReplyTight Temporal CouplingCascading thread exhaustion (INC-4812)4,200 TPSRejected: Caused INC-4812 $6.8M collapse; cannot survive partner latency.
    Option B: Orchestrated 2PC SagasSynchronous OrchestrationDistributed lock contention6,500 TPSRejected: Two-phase commit locks database rows; vulnerable to network partitions.
    Option C: Asynchronous Event-Driven (Chosen)Complete DecouplingZero ingress impact (Buffered in log)50,000+ TPSSelected: Total fault isolation, infinite buffer absorption, strict ordering.

    Result

    Option C is selected. Event-Driven Architecture provides complete temporal decoupling; Kafka partitioned streams guarantee in-order ledger execution; transactional outbox pattern eliminates dual-write inconsistencies.


    Required Mechanisms

    1. Architectural Decoupling & Ingress Contract [MC-AD-01]
    • Ingress gateway receives POST /v1/remittances.
    • Enforces strict local validation (schema, cryptographic signature, account format).
    • Writes transaction to local Aurora PostgreSQL database and appends event to outbox_events table in the exact same ACID commit.
    • Ingress immediately returns

    HTTP 202 Accepted with tracking URL in

    < 15 milliseconds, releasing client and gateway threads.

    2. Event Stream Topology & Partition Ordering [MC-ET-01]
    • Event Backbone: Apache Kafka cluster deployed across 3 Availability Zones on AWS EKS.
    • Topic Configuration:
      • Topic: remittance.settlement.v1.
      • Partitions: 48 partitions.
      • Partition Key: debtor_account_id (guarantees that all events for a specific bank account arrive at the same partition in strict FIFO order).
      • Durability: replication.factor=3, min.insync.replicas=2, acks=all.
    3. Eventual Consistency & Temporal Bounds [MC-EC-01]
    • Eventual Consistency Ceiling:
      • Internal microservices (FX, balance checks): converge within < 500 milliseconds.
      • External banking partners (SWIFT clearing): converge within < 45 seconds.
    • In the event of partner downtime, Kafka topics buffer up to

    7 days of events without dropping records or degrading ingress throughput.

    4. Idempotent Consumer Choreography [MC-IC-01]
    • Consumers enforce idempotency using Redis-backed deduplication filters:
      • Key: idemp:event:{event_id} with TTL of 24 hours.
      • If event was already processed, consumer commits Kafka offset immediately and skips processing, preventing double-credit mutations.

    Invariants and Contracts

    Zero Synchronous Downstream Coupling [INV-EDA-01]
      Ingress transaction APIs must not execute synchronous network calls to downstream partner services.
      All partner interactions must be decoupled via asynchronous domain event consumers.
    
    Strict Entity-Keyed Partition Ordering [INV-EDA-02]
      Events modifying stateful financial balances must be published with the account identity as partition key.
      Publishing balance-mutating events with random or null partition keys is strictly prohibited.
    
    Mandatory Transactional Outbox Invariant [INV-EDA-03]
      Domain events must be committed to the local database outbox table in the same ACID transaction
      as the business state mutation. Direct out-of-band broker publishing before database commit is barred.
    

    Explicit Unknowns

    • Kafka cluster network transit cost during heavy cross-AZ replica synchronization under sustained 18,000 TPS (G-1).
    • Consumer rebalance pause behavior when consumer pods scale horizontally from 12 to 48 replicas during morning traffic bursts (G-2).

    Traceability

    ClaimClassificationSourceFreshness
    14 correspondent banking networksprovidedNetwork scope intakeCurrent
    Peak 18,000 transactions/secprovidedVolumetric traffic profileCurrent
    Incident INC-4812 40-minute clearing outageprovidedForensic incident recordHistorical
    Partner latency spikes up to 45 secondsprovidedOperational observation logCurrent
    Event-Driven Architecture selected over RPC/2PCdecidedDavid O'Reilly & Elena Rostova2026-09-15
    Strict debtor_account_id partition keyingdecidedArchitectural invariant INV-EDA-022026-09-15

    Verification

    No validator was supplied, so no command was run.

    Reviewer self-check against EDA architecture style standards:

    • Decoupling Rigor: PASS. 100% temporal decoupling; partner latency cannot block ingress.
    • Ordering Safety: PASS. Partition keying by account ID guarantees strict FIFO execution.
    • Delivery Assurance: PASS. Transactional outbox eliminates dual-write inconsistencies.
    • Markdown Hygiene: PASS. Native Markdown syntax strictly adheres to rule_markdown.md.

    Open Decisions

    • DEC-EDA-01: Elena Rostova to determine whether Dead-Letter Queues (DLQ) should be processed via automated schema remediation Lambdas or routed to manual ops dashboards (Owner: Elena Rostova).

    Next steps

    1. Marcus Vance provisions 48-partition Kafka topics with tiered cloud storage.
    2. Platform team configures Debezium CDC outbox connectors for core banking databases.
    3. Conduct staging resilience drill simulating a 45-second partner API freeze to verify zero ingress thread starvation.

    Connects securely to your tools. The creator never sees your data.

    What you get

    Assess temporal decoupling and fan-out requirementsEvaluate tolerance for eventual consistency across servicesCompare synchronous calls against asynchronous stream alternativesIdentify reversal triggers for architectural style decisions

    About this skill

    What it does

    This skill evaluates whether asynchronous fact/message-mediated interaction fits supplied temporal coupling, fan-out, autonomy, consistency, ordering, failure and operational forces. It compares direct, synchronous, polling/batch, queue, pub-sub, stream and workflow alternatives without designing them.

    Use it when

    Use when an authorized style decision asks whether a scoped set of component interactions should be event-driven and evidence exists about producers/consumers, timing, coupling, consistency, ordering, failures, workload and operations.

    For example: “Every time we add a feature we have to change the order service. Marketing wants a notification, analytics wants a record, and loyalty wants points.”

    What you get

    • EDA Assessment Report

    Written as Markdown to <your output folder>/architecture/tasks/<run-id>/eda-style/.

    What it will not do

    Do not use merely to design events, brokers/topics/queues/streams, messaging reliability, choreography/sagas, CQRS/event sourcing, schemas, or handlers.

    How it works

    1. Check the framing is publish/subscribe or event streaming.
    2. Establish that producers genuinely should not know consumers.
    3. Assess the organisation's tolerance for eventual consistency.
    4. Check debuggability against the team's tooling.
    5. Name the reversal trigger.
    6. Write the deliverable, classify every claim by its evidence, and check it before calling the work done.

    What's in the package

    Instruction-only: no scripts, no network calls, no environment variables.

    • LICENSE.txt
    • SKILL.md
    • agents/openai.yaml
    • assets/output-template-task.md
    • references/domain-rules.md
    • references/operating-rules.md
    • references/output-contract.md

    How to install

    Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.

    ~30 seconds
    1. 1

      Download the ZIP

      Free skills download straight away. Paid skills unlock right after purchase.

    2. 2

      Unzip into your skills folder

      Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.

    3. 3

      Ask your agent to use it

      Restart the agent if it was already running. It picks the skill up automatically - no config needed.

    Skills folder by agent

    Click the path to copy it. Create the folder if it does not exist yet.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    30-day refund

    Not a fit? Get your money back

    Trust & safety

    Security scanned

    Verified clean 12 days ago

    • Passed all security checks, Safe to install

    Listed12 days ago

    What's inside

    Frequently Asked Questions