Posts

Showing posts from March, 2017

Reviewing Exception Handling

Reviewing Exception Handling When developing an application it can be hard enough to get the happy path working, let alone worry about what might happen when something goes wrong. I have asked a number of developers recently what they do when they get an exception and usually they log it or pass it back to the user. What are some alternatives? If you have to pass on the exception how might you do that? Read more by following this link to the new blog!
Distributing Common Java APIs Distributing data stores vs Private data stores in Microservices Distributing data containers e.g. Maps, can be a way of avoiding having to think too much about distributing your application. Your business logic is much the same, and it is your data collections which are visible to all your services. Using centralised or even distributed data stores have a number of scalability issues, as it requires very low-level data access to be distributed in a generic way which isn’t optimised for particular business requirements. Distributing business components with private data stores is the favoured approach of Microservices and it limits the "surface area" of each service which reduces security issues, performance considerations and gives you more freedom for independent changes to service’s data structures. In this review, I will be focusing on distributed data containers, largely because the interfaces are available in the JDK and
Modelling Microservice Patterns in Code Service Interactions There is a number of simple interactions a service can support. Which pattern is best for your application can depend on what an existing application expects, and what latency requirements you have. Broadly speaking these interactions fall into client-server and peir-to-peir messaging. For peir-to-peir messaging, one approach to take is  Lambda Architecture  however from supporting GUIs, client-server models can be easier to work with. I feel it is important to design components which could be tested and debugged together, as in a monolith, but can be deployed as multiple  right sized  services to different threads, JVMs, or machines. Read more by following this link to the new blog!
Simple Asynchronous Microservices using Lambda Architecture. Lambda Architecture Lambda Architecture is a simple, powerful, though limited example of a Microservice. As it is so simple, you want to use it as much as possible, to expose the more complex services/component in your system which cannot support this interaction model. Read more by following this link to the new blog!
Microservices are about applying a group of Best Practices Microservices Denial A number of times clients have said; they can’t imagine their organisation using Microservices. I found this surprising as I know those people are using many of the principles of Microservices already. I can understand that they feel no need to join the hype around microservices, but the reality is, like it or not, you are most likely using some of the best practices Microservices advocates. Read more by following this link to the new blog!
Bad String We have a program here that has two threads printing messages alternatively. However, if you change a  String from  "cC"  to  "cc"  it doesn’t print anything, WHY? . . .  Read more by following this link to the new blog!
A JDBC Gateway Microservice A deep dive into a low latency microservice We look at a microservice which can run in it’s own JVM, can perform JDBC updates and queries via a persistent queue for in bound request and a queue for results. In previous posts I looked at the theory behind there low latency micro-services so lets have a look at a micro-service which can do something useful. https://vanilla-java.github.io/2016/04/12/A-J-D-B-C-Gateway-Microservice.html