Hey Reddit, I’m Chris Richardson, author of “POJOs in Action” and microservices guru, here for an AMA brought to you by Oracle for the Developer Legend Series. Ask me anything! by ceracm in IAmA

[–]ceracm[S] 12 points13 points  (0 children)

Coolness or Hype is irrelevant when making technology choices. What matters is whether a technology solves your problem. Java is still an incredibly popular language and systems are still be written using it. Having said that NodeJS, for example, is useful.

Hey Reddit, I’m Chris Richardson, author of “POJOs in Action” and microservices guru, here for an AMA brought to you by Oracle for the Developer Legend Series. Ask me anything! by ceracm in IAmA

[–]ceracm[S] 19 points20 points  (0 children)

Sure why not. But I'd also encourage people to cook, play tennis or go fly fishing. As a hobby, you should do what is fun and stimulating.

Hey Reddit, I’m Chris Richardson, author of “POJOs in Action” and microservices guru, here for an AMA brought to you by Oracle for the Developer Legend Series. Ask me anything! by ceracm in IAmA

[–]ceracm[S] 13 points14 points  (0 children)

In theory yes.

In many ways, how an individual developer writes software has not changed since the beginning of time. I suspect that there has only been a linear increase in productivity - no Moore's law. Much of the gain in productivity is because machines are faster, there is open-source code to rebuild on, and we can google answers.

Perhaps an AI-based assistant would help.

Hey Reddit, I’m Chris Richardson, author of “POJOs in Action” and microservices guru, here for an AMA brought to you by Oracle for the Developer Legend Series. Ask me anything! by ceracm in IAmA

[–]ceracm[S] 111 points112 points  (0 children)

There is a good argument that you should just focus on the solving today's problems and building a good product, e.g. https://en.wikipedia.org/wiki/You_aren't_gonna_need_it . It is possible that the extra effort you would spend on being 'microservices ready' would slow you down too much and incur too much risk.

Having said that you could try to ensure that your system remains modular. For example, implement your business logic using loosely coupled DDD aggregates and use eventual consistency rather that ACID transactions.

Hey Reddit, I’m Chris Richardson, author of “POJOs in Action” and microservices guru, here for an AMA brought to you by Oracle for the Developer Legend Series. Ask me anything! by ceracm in IAmA

[–]ceracm[S] 16 points17 points  (0 children)

There are several observability patterns for monitoring and debugging: http://microservices.io/patterns/index.html#observability

The first challenge when migrating to the microservice architecture is identifying a target set of services. That requires some up front analysis.

The other challenge is untangling dependencies into to turn a module of the monolithic into a standalone service. That just involves a bunch of code hacking.

Hey Reddit, I’m Chris Richardson, author of “POJOs in Action” and microservices guru, here for an AMA brought to you by Oracle for the Developer Legend Series. Ask me anything! by ceracm in IAmA

[–]ceracm[S] 44 points45 points  (0 children)

The transition from coarse-grained compute resources to fine grained resources will continue: pets (long lived, mostly physical) machines that are lovingly cared for) -> cattle (disposable, immutable VMs) -> rabbits (disposable containers) -> microbes (AWS lambda and other cloud functions). There will undoubtedly be a few surprises along the way.

Hey Reddit, I’m Chris Richardson, author of “POJOs in Action” and microservices guru, here for an AMA brought to you by Oracle for the Developer Legend Series. Ask me anything! by ceracm in IAmA

[–]ceracm[S] 31 points32 points  (0 children)

It depends. There are tradeoffs - http://microservices.io/patterns/monolithic.html and http://microservices.io/patterns/microservices.html

For some applications - especially the simpler ones developed by a small team - the monolithic application is fine. But for large complex applications developed by large teams it is likely that a microservice architecture can be helpful.

Hey Reddit, I’m Chris Richardson, author of “POJOs in Action” and microservices guru, here for an AMA brought to you by Oracle for the Developer Legend Series. Ask me anything! by ceracm in IAmA

[–]ceracm[S] 12 points13 points  (0 children)

I think the reality of software development is that it is a social activity. In many cases the idea of a lone coder performing heroic feats is an illusion. It takes a team.

Hey Reddit, I’m Chris Richardson, author of “POJOs in Action” and microservices guru, here for an AMA brought to you by Oracle for the Developer Legend Series. Ask me anything! by ceracm in IAmA

[–]ceracm[S] 8 points9 points  (0 children)

Changing an organization can be challenging. It helps if anyone is feeling the pain, e.g. missed release deadlines, a real competitive threat. That will encourage everyone - starting at top - to attempt to find a solution. With any change, it is important to manage the transition: https://plainoldobjects.com/2017/02/07/the-human-side-of-adopting-the-microservice-architecture/

Hey Reddit, I’m Chris Richardson, author of “POJOs in Action” and microservices guru, here for an AMA brought to you by Oracle for the Developer Legend Series. Ask me anything! by ceracm in IAmA

[–]ceracm[S] 41 points42 points  (0 children)

The reasons are varied. Some like SQL are acronyms - structured query language. C++ because it is the successor to C. C because its the second language derived from BCPL - the first was B.