EventBridge 2.0
Making sure all event gets published on

Why
My Tradera Denormalizer
- Current solution for My Tradera scales badly
- We need more functionallity than can easily be implemented via Sql
- Long time storage
Current EventBridge
- Per message implementation
- No heads up if messages get added
- No heads up if messages get changed
- No serialization on time must be handled by subscriber, hard problem!
Solution
EventBridge 2.0
Responsibility
- Shift responsibility to publishers
- Make sure all events gets published
- Make sure changes fails our builds
Architecture sample Listing
Internal
Publisher
Internal
Publisher
Internal
Publisher
Internal
Publisher
MSMQ
Listing
EventBridge
RabbitMQ
EventArchiver
RabbitMQ
Topic exchange:
Tradera.Listing.Events
Routing
tradera.listing.eventbridge.events.auctioncreated.item
Leverage Routing
Pros:
- Flexibility
- Time serialization
- Scale out without raze conditions
-
Use well known messaging patterns:
- Competing consumers
- Selective Consumer
Cons:
- NSB like usage?
- Configuration inside rabbitmq
Message headers
All events:
- messageId
- 1c9668a1-6136-4669-bfb5-8d9449c8409e
- publishedTime
- 2016-09-02T11:41:43.7450822+02:00
- processCorrelationId
- 00000000-0000-0000-0000-000000000000
- itemId
- 85375437
- processService
- listing
- aggregateName
- item
- aggregateId
- 85375437
Process service specific:
- sellerMemberId
- 2023663
Message archiving
Topic exchange:
Tradera.Listing.Events
Routing
tradera.listing.eventbridge.events.auctioncreated.item
Coming later this fall!
Learnings
Inheritance makes
business intent hard
Exchanges are cheap
Low overhead for an exchange
Ownership
Messages are published from
questionable process services
Demo
EventBridge per process service
By fhelje
EventBridge per process service
Build automation
- 435