Live data from Hacker News

How we build microservices

blog.yourkarma.com

1–10 of 42 posts

Re: How we build microservices

#2
"By just going ahead and building the app, we became familiar with the problem we were trying to solve, and the more familiar we were with the problem, the more obvious it was where we needed boundaries between aspects of the app. Every time we encountered something that clearly looked like it should be a separate piece, we turned it into a service."

THIS. This should be printed in 36-point font on every microservice article.

Re: How we build microservices

#3
"The biggest challenge with microservices is testing. With a regular web application, an end-to-end test is easy: just click somewhere on the website, and see what changes in the database."

I find this surprising. I would've thought having a more modular system would lend itself to easier testing. Have others had this same experience?

Re: How we build microservices

#4
post #3

"The biggest challenge with microservices is testing. With a regular web application, an end-to-end test is easy: just click somewhere on the website, and see what changes in the database." I find this surprising. I would've thought having a more modular system would lend itself to easier testing. Have others had this same experience?

Every little piece is easy/easier to test, but testing end-to-end over multiple micro-apps is hard in my experience.

Re: How we build microservices

#5
post #3

"The biggest challenge with microservices is testing. With a regular web application, an end-to-end test is easy: just click somewhere on the website, and see what changes in the database." I find this surprising. I would've thought having a more modular system would lend itself to easier testing. Have others had this same experience?

It's easier to test individual items, for sure. Testing small code bases is the best thing ever. However, some actions require stuff to happen in multiple services.

There are "contracts" on how to talk to other services. You can test if you follow that contract, but it's hard to verify automatically that these contracts are in sync between apps.

Re: How we build microservices

#7
> We have an in-house tool we use called Fare which reads this configuration and sets up the appropriate SQS and SNS queues.

Would love to see this released publicly. As stated in the post, there aren't a ton of (public) examples of microservice architectures, so everyone seems to be solving the same problems independently. It would be great if we could start pooling more of our resources together.

Re: How we build microservices

#8
post #3

"The biggest challenge with microservices is testing. With a regular web application, an end-to-end test is easy: just click somewhere on the website, and see what changes in the database." I find this surprising. I would've thought having a more modular system would lend itself to easier testing. Have others had this same experience?

I think what the article is talking about is testing microservices in an event based messaging architecture is difficult. If the architecture did not comprise of queues with async servicing of queues it might have been easier to test the microservices in an end-to-end scenario.

Re: How we build microservices

#9
post #4
post #3

"The biggest challenge with microservices is testing. With a regular web application, an end-to-end test is easy: just click somewhere on the website, and see what changes in the database." I find this surprising. I would've thought having a more modular system would lend itself to easier testing. Have others had this same experience?

Every little piece is easy/easier to test, but testing end-to-end over multiple micro-apps is hard in my experience.

Why is this? Is it simply a deployment issue - that it's hard to get all the pieces running together in a test environment?

Re: How we build microservices

#10
post #4

Earlier quoted context omitted.

Every little piece is easy/easier to test, but testing end-to-end over multiple micro-apps is hard in my experience.

Why is this? Is it simply a deployment issue - that it's hard to get all the pieces running together in a test environment?

Sorry, I meant automated testing. Getting all the piecies running in a test stage isn't hard.
Post reply on HN