2.0.5 • Published 4 years ago

@lucaswxp/eventsource v2.0.5

Weekly downloads
30
License
ISC
Repository
-
Last release
4 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

4 years ago

2.0.4

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.1.9

5 years ago

1.1.8

5 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago

0.0.927

6 years ago

0.0.926

6 years ago

0.0.925

6 years ago

0.0.924

6 years ago

0.0.923

6 years ago

0.0.922

6 years ago

0.0.921

6 years ago

0.0.92

6 years ago

0.0.91

6 years ago

0.0.90

6 years ago

0.0.89

6 years ago

0.0.88

6 years ago

0.0.87

6 years ago

0.0.86

6 years ago

0.0.85

6 years ago

0.0.84

6 years ago

0.0.83

6 years ago

0.0.82

6 years ago

0.0.81

6 years ago

0.0.8

6 years ago

0.0.74

6 years ago

0.0.73

6 years ago

0.0.72

6 years ago

0.0.71

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago