OpenCredo
opencredo.com · Company blog · on HN since 2012
OpenCredo, a software consultancy, writes about microservices, Java, Go, REST API design, and project management.
What HN saysHN commenters recommend it as a good blog to read, citing its microservices articles and the follow-up project manager post.
33HN people shared it
6linked it in comments
55stories submitted
277story points
3 years agolast shared
2012people per year2026
Most-shared posts
- 1From Java to Go, and Back Again (2016)2 people · 121 points · first shared 2016 · 130 comments on HN
- 2Versioning a Microservice System with git2 people · 12 points · first shared 2016 · 1 comments on HN
- 3The Seven Deadly Sins of Microservices (Follow Up Blog Post)2 people · 9 points · first shared 2016 · 1 comments on HN
- 4Designing a REST API with Fine-Grained Resources, HATEOAS and HAL2 people · 7 points · first shared 2015 · discussion on HN
- 5Programmable Infrastructure Needs Testing Too2 people · 2 points · first shared 2017 · discussion on HN
- 6The 7 deadly sins of project managers1 people · 20 points · first shared 2016 · 11 comments on HN
- 7What I Don’t Like About Error Handling in Go, and How to Work Around It1 people · 8 points · first shared 2017 · discussion on HN
- 8A deep-dive into Angular 2.01 people · 7 points · first shared 2015 · discussion on HN
- 9Easy API Simulation with Hoverfly JUnit Rule1 people · 7 points · first shared 2016 · discussion on HN
- 10New Tricks with Dynamic Proxies in Java 8 (part 1)1 people · 7 points · first shared 2015 · discussion on HN
- 11Simulating GitHub OAuth2 Login for Tests with JUnit, Webdriver and Hoverfly1 people · 6 points · first shared 2016 · discussion on HN
- 12New Tricks with Dynamic Proxies in Java 8 (part 2)1 people · 6 points · first shared 2015 · discussion on HN
- 13Implementing HAL Hypermedia REST API Using Spring HATEOAS1 people · 4 points · first shared 2016 · discussion on HN
- 14Facebook’s React, and the signal:noise ratio1 people · 3 points · first shared 2016 · discussion on HN
- 15WebAssembly – Where is it going?1 people · 3 points · first shared 2020 · discussion on HN
What HN people wrote when they linked it
danielbryantuk · 2016-02-18
I'm the article author, and it's great to hear your feedback! I've published a couple of other articles that may help with the topic of microservices:
https://opencredo.com/javaone-building-a-microservice-development-ecos…
https://opencredo.com/the-seven-deadly-sins-of-microservices-redux/
I'm also looking for more suggestions of how people will want to use Hoverfly with Java projects, and so please do give me a shout via twitter @danielbryantuk if you have any ideas!
zackmorris · 2017-03-18
After implementing an ACL system with permissions inheritance for child nodes, I'm of the opinion that it's not really something that can be written by humans efficiently. Not to say that the concept is bad, just that it touches on so many things that it should probably only be attempted by way of a framework (which largely doesn't exist, at least not universally, so kudus to ladon for trying).
For anyone struggling with permissions, it might be easier to think about them in terms of which actions are available to a user at each endpoint, something along the lines of this with HATEOAS and filtering links:
https://opencredo.com/designing-rest-api-fine-grained-resources-hateoa…
A few things that ACLs can potentially break:
* PUT/PATCH requests: every relationship (and every attribute if using field-level security) of every resource needs permissions checks
* Database consistency: if logic is too complex to put in triggers, then permissions table can get out of sync with roles
* Russian doll caching (and caching in general): views now vary by user based on what subviews are visible
There are so many ramifications with permissions systems that it's worth implementing them early on in your project if you know you'll need them, or approaching them from a different angle like how Firebase rules are implemented declaratively and inherited per-resource.
eloycoto · 2017-04-21
OpenCredo is a good blog to read:
https://opencredo.com/blog/
On the other hand, Cloudflare, Stripe and Netflix have some awesome articles too.
Mind_of_AC · 2016-06-07
this is the second part of the post, hope you will like it as well!
https://opencredo.com/seven-heavenly-virtues-project-manager/
cmsd2 · 2016-03-27
A coworker showed me Akka Streams recently.
It allows you to overcome the impedence mismatch between threadpools processing jobs at different speeds where one task feeds into another.
Could be a neat way to join up the i/o bound tasks to the cpu bound tasks.
https://opencredo.com/introduction-to-akka-streams-getting-started/
Florin_Andrei · 2016-08-03
CloudFormation covers all AWS features in full detail. OTOH, you end up reading and editing tons and tons of JSON that were never meant for human consumption. I don't know what goals Amazon had when they came up with CF, but if human readability was one of them, then they've failed that goal.
I've seen a lot of people start writing their own CF management systems, in Python or whatever, and end up with a lot of infrastructure defined in the logic of the homegrown management tool - like a badly written PHP page where presentation and logic are all mixed up. You see that once, you never want to go there again.
Terraform does not cover all AWS features, but the exceptions are few and tend to be lesser used features. The file format is human readable (this is subjective to some extent), and can be composed and modularized easily.
https://opencredo.com/terraform-infrastructure-design-patterns/
https://github.com/hashicorp/best-practices
https://atlas.hashicorp.com/help/intro/use-cases/multiple-environments
https://www.terraform.io/intro/getting-started/modules.html
https://www.terraform.io/docs/state/remote/index.html
I'm not a big fan of buzzwords and soundbites, but Terraform comes pretty close to fulfilling the ideal of "software-defined infrastructure" in a way that is accessible, easy to use, easy to expand, and just makes sense - in the way a good programming language just makes sense.