2.0.5 • Published 5 years ago

@lucaswxp/eventsource v2.0.5

Weekly downloads
30
License
ISC
Repository
-
Last release
5 years ago

Producer side: new EventStore(rabbit, mysql, etc)

  • publish

    send payload to {AggregateType}AggregateIds create/check exchange Product-{aggregateId} create/check all queues registered in redis with expiration of 30 seconds and with name Product-123123-523455-1232123-1231231-{servicename} send message to Product-{aggregateId}

Listener side: new EventStore(rabbit, mysql, redis, etc)

eventsouce.listen(Product, 'projections')

  • constructor:

    append to eventsourceServices redis key {projectname, Product} if not exists assert ProductAggregateIds and start consuming

  • once message arrives at ProductAggregateIds

    service will start consuming the Product-{id}-{thisService} if it is not already. Private method consume()

  • once message arrives at Product-{id}-{thisService}

    will dispatch to all interested listeners once processed will register ack in the ack table with the eventId, service name, projection type and success 1|0

1. ProductAggregateIds ^ products (LISTEN) ^ ads (LISTEN) ^ api-legacy (LISTEN)

2. ProductServicesHealthChecks products > send ping

ads > send ping

once here the system is "stable", we know which services are listening

3.

send message 123123-523455-1232123-1231231 ^ assert exchange Product-123123-523455-1232123-1231231 with autodelete true ^ create all queues registered in health checks with expiration of 30 seconds and name Product-123123-523455-1232123-1231231-{servicename}

  • Queues that have not received anything within 5 will have its consumers deleted, and within 30 seconds the queue should have no consumers
  • Once all queues of a exchange have deleted, the exchange should auto delete

4. Interested services will consume the ProductAggregateIds queue

message received ^ once a message is received, the service will start consuming the Product-{id}-{service} if it is not already ^ once processed will register ack in the ack table with the eventId and service name ^ Users can bind only one time per aggregate type and projection type

ACKS eventId 12312312-31-231-23-123 service products type projections status ok|fail

2.0.5

5 years ago

2.0.4

5 years ago

2.0.3

5 years ago

2.0.2

5 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.1.9

6 years ago

1.1.8

6 years ago

1.1.6

6 years ago

1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.927

7 years ago

0.0.926

7 years ago

0.0.925

7 years ago

0.0.924

7 years ago

0.0.923

7 years ago

0.0.922

7 years ago

0.0.921

7 years ago

0.0.92

7 years ago

0.0.91

7 years ago

0.0.90

7 years ago

0.0.89

7 years ago

0.0.88

7 years ago

0.0.87

7 years ago

0.0.86

7 years ago

0.0.85

7 years ago

0.0.84

7 years ago

0.0.83

7 years ago

0.0.82

7 years ago

0.0.81

7 years ago

0.0.8

7 years ago

0.0.74

7 years ago

0.0.73

7 years ago

0.0.72

7 years ago

0.0.71

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago