B
B
BonBon Slick2018-08-29 13:21:02
Software design
BonBon Slick, 2018-08-29 13:21:02

When do you really need Event Sourcing and microservices?

After playing a little with ES and creating a kind of overhead project in a pet project, the question arose, is it needed?
How much? When, how and why to implement it?
For example, Martin Filer said that he develops most of the applications with events. The most common example on the Internet is a store where there are Cart, Customer and Product objects, or TODO lists.
However, ES is an overhead or not?
If we say a project like Trello?
Does he need ES? And if a small samopisny in the company? When to microservice?
Say Twitter, does it need ES and SOA?
Why?
Payment on the site income up to $ 10,000 per month and load up to 100,000 uniques per day Do you need ES? After all, its support and content are many times higher than a regular state in the database.
I would like to know who, when, and why used ES and microservices?
https://martinfowler.com/eaaDev/EventSourcing.html

Answer the question

In order to leave comments, you need to log in

2 answer(s)
�
âš¡ Kotobotov âš¡, 2018-08-29
@angrySCV

microservices are the answer to the complexity that you have to face when developing large services.
First of all, the answer to the question of how to effectively create fault-tolerant, easily scalable services that are constantly changing and evolving.
a complex and large project, it is easier to develop in small independent parts (in which even the writing or reading of the "state" is separated by different services), and such independent parts are also easier to scale, implement, update, test.
Microservices together with CQRS, DDD, ES help to solve this problem.
If you don’t have such a task, you have a typical online store that you did once and forgot, then you don’t need microservices, or rather, they won’t give you a big output compared to monoliths + modules inside monoliths (at the same time, the development of microservices really carries a certain overhead, for example, the need for microservices to develop API and AntiCorruption layers)
Again, regarding the load and scaling, in general, you have a small load that is easily closed by one cheap server.
However, with a microservice architecture, you can organize dynamic scaling in the cloud -> scale both up and down in almost real time, which, for example, will allow you to handle, for example, 10x typical load during sales, while not overpaying for infrastructure.
During low load use 1/10 of typical power (and pay 1/10) and in high load conditions (100x of minimum load -> pay 10x of typical but for a very short period of time).
In this case, you can use the type of hybrid clouds, in which at the beginning the service is scaled according to your infrastructure, and with sharp peaks (for which you do not have the power to process), it is additionally scaled inside a third-party cloud.
But these are not standard solutions, the development of which is much more complicated and expensive.

A
Ambrosian, 2018-08-29
@Ambrosian

However, ES is an overhead or not?

any method is applicable to something specific.
for a small shop - extra work.
for Amazon and more sophisticated methods - no overhead.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question