primary guideline would be don't even consider microservices unless you have a system that's too complex to manage as a monolith. The majority of software systems should be built as a single monolithic application. Do pay attention to good modularity within that monolith, but don't try to separate it into separate services."
to gure out how to migrate. ... if you take that company's solution, it's their solution to their problem. ... at amazon, the service orientated architecture took ve or six years. ... every one of those things took that long to go from an idea to actually developed at scale. ... and if you think you can do it in 5 months, you're crazy. Ain't gonna happen."
Share nothing architecture Actor Model: Communication only through message passing Let it crash: Fault tolerance through supervision trees Good skills? Probably!
cd abc/apps $ mix new a $ mix new b --sup $ mix new c --sup Deployments: All, some or one app per node Location transparency: Works in one node → Will also work in distributed mode Supervision trees often represent bounded contexts
capabilities may not be in place. And they are scarce, not easy or quick to build up. Team skills will outweigh architectural style! Consider Erlang and Elixir :-)
of Software Engineering • Mary Poppendieck The True story about why we invented Erlang and A few things you don’t want to tell your Manager • Mike Williams AXD 301 • Ericsson Review No. 1, 1998 Erlang's nine nines Joe Armstrong's PhD thesis on the creation of Erlang José Valim • Elixir in times of microservices