On Tuesday, 6 October 2015 at 23:01:43 UTC, Laeeth Isharc wrote:
On Tuesday, 6 October 2015 at 19:31:20 UTC, Mengu wrote:
a half of it is the buzz and other half of is not. remember
people talking about reactjs, go and rails being buzz? they
were the same. we have built an online payment gateway and we
are about to decouple our application and switch to
microservices architecture. we have an api, a dashboard, a
checkout page, mobile flow. we have to deal with accounting
and reporting as well. and there is no way that this
application will turn into a giant monolith. i don't want
that. nobody wants that. it will become something we cannot
handle.
now a question for you. do you wish you had built it from
components from day one? or do you see creating it as a blob
to start with and then when the right divisions are clear
factoring these out into micro-services as simply a natural
part of the design process? because you know much more by
having started, and it's not so hard to refactor at this stage.
it's the latter for me. i am glad we have everything coupled
together. this way we are able to see what parts can live by
themselves and what parts cannot. and when you're building a
start-up, i hardly believe designing microservices is the way to
go. if you have time, if you have resources then go and design
your microservices architecture. take your time, use your
resources. but i didn't. i was one man and i did not have the
time. now we are 4 people. we are not adding new features anymore
and we know what kind of future is out there for our application.
right now almost 95% of our application can be decoupled, do not
depend on each other in terms of code. they can just communicate
and get things done. also it means more uptime, more developers,
more resources, etc.
we already have two microservices. one is for card vaulting and
the other one is for end of day and cash report download/process
service from the banks and other payment gateways. sometimes the
industry you are in will push you that way. and... one of the
most important things for me with microservices is that now I can
get Haskell and D in our codebase. :-)
another thing is whenever we do deployments we have to take
down the whole application and go offline
pretend I'm asking you before it was deployed in production...
nobody suggests starting with microservices architecture
because you'll never know where things will lead you however
when it becomes a giant the suggestion is to use microservices.
some people do. but I would have thought the point I made
above is the real reason. it doesn't take very long to write
it that way from the beginning IFF you know what you want it to
look like before you start. and maybe you don't. but I am
interested in what your experience has been.
nobody, in their right minds, then. :)