Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: Example use cases #874

Merged
merged 5 commits into from
Apr 25, 2023
Merged

doc: Example use cases #874

merged 5 commits into from
Apr 25, 2023

Conversation

patriknw
Copy link
Member

No description provided.


## TODO C
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good if we have something more, but I'm out of ideas right now. Previously I had an idea of an online auction system but not sure if's good or adding any value compared to the others?

Let’s say we have a world-wide online auction system. The system is running in 20 regions. There are many many active auctions in total, but all are not active in all regions. Users connect to the closest region. Some information about the auctions are replicated to all regions, such as the list and summary status of active auctions. Replicating all bids and comments for all auctions to all regions would be wasteful. When a user shows interest in a specific auction, such as placing a bid or asking a question, the event log for that auction is replicated to the region of the user. After inactivity in a region for a specific auction the event replication is stopped.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find the idea of having an entity that 'hibernates' when not in use in a given region really interesting.

On the other hand, I found the shopping cart use case somewhat artificial. I would try something more realistic.

What about a game scoreboard? We can have many players around the world. Scores are collected per region and eventually merged?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can absolutely add more than 2 examples. Something with an online collaborate game might be good, but I think it must involve something more than just scoreboard aggregation.

Scores are collected per region and eventually merged

That kind of aggregation is pretty similar to the Car telemetry aggregation in the first use case.

The Car aggregation would be a case for Projections over gRPC (service-to-service), while the shopping cart is for the Replicated Event Sourcing (active-active).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That kind of aggregation is pretty similar to the Car telemetry aggregation in the first use case.

Yes, that's true.

Copy link
Member

@johanandren johanandren left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two are good. I think the auction could be good enough as well.

## TODO B
A car company collects and aggregates telemetry data from millions of cars around the world. A car reports its status
every third second to a backend service. The cars are connected to a nearby cloud region for low-latency and high
availability reasons. All telemetry data is feed into an analytics system to find anomalies and gather statistics,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
availability reasons. All telemetry data is feed into an analytics system to find anomalies and gather statistics,
availability reasons. All telemetry data is fed into an analytics system to find anomalies and gather statistics,


## TODO C
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find the idea of having an entity that 'hibernates' when not in use in a given region really interesting.

On the other hand, I found the shopping cart use case somewhat artificial. I would try something more realistic.

What about a game scoreboard? We can have many players around the world. Scores are collected per region and eventually merged?

patriknw and others added 3 commits April 25, 2023 09:58
Co-authored-by: Renato Cavalcanti <renato@cavalcanti.be>
Co-authored-by: Johan Andrén <johan@markatta.com>
@patriknw
Copy link
Member Author

These two are good. I think the auction could be good enough as well.

Ok, at this stage more is probably good. Might inspire to other ideas and we can pick the best later if too much. Added in 43e4cae

After inactivity in a region for a specific auction the replication is stopped.

## Low cost Microservices
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I aslo added this one as something that is not requiring world wide business.

@patriknw patriknw merged commit 6d50301 into main Apr 25, 2023
@patriknw patriknw deleted the wip-use-case-patriknw branch April 25, 2023 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants