System design: Strategies for dealing with heavy writes to a DB

I’d say a solution will be highly dependent of what exactly you need to do. A solution to write thousands of records per second might be very different from incrementing a counter in the example you provided. More so, there could be no tables at all to handle such load. Consistency/availability requirements are also missing … Read more

Where to implement Automapper in a DDD + layered architecture

To answer your specific question I will speak more generally about your architecture. The architecture you’ve devised for your project is subtly different from a typical architecture used with DDD. While the way you’ve partitioned responsibilities is typical, in DDD, domain classes aren’t responsible for their own persistence. In fact a mantra of DDD is … Read more

Why put a DAO layer over a persistence layer (like JDO or Hibernate)

You make some points. But I nevertheless use a Dao layer, here’s why: Database accesses are calls to a remote system. In all such cases (also web-service, ajax etc…), the granularity of interaction need to be big enough. Many tiny calls would kill performance. This performance necessity requires often a different view of the system, … Read more

Best way to store Badge criteria?

Rules. You create events in the system, and use rules within an event stream processor. Specifically, say you have a badge “made 10 posts”. You don’t run “select count(*) from posts where user = :user” for every post. Rather, you have a simple rule that watches each post come by, and “count them”, storing the … Read more

Microservices: What are smart endpoints and dumb pipes?

I didn’t read the article, so I can only speculate what he can mean exactly, but as he gives ESB as an example against microservices and ZeroMQ as an example for micro services I hope my speculation will be pretty exact: One of the ideas of Unix (and Linux) is to build small independent applications … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)