Onion vs. N-Layered Architecture

Adding facades are really the first step in building an onion architecture out of an n-layered architecture. So, yes, you can get many of the benefits right away. Testing is still problematic as you need to invert the dependency control. Controlling what has the facade is pointing to needs to move to the consumer, not … Read more

Alternatives to many-to-many relationships with CQRS

Supposing that both are aggregates, copy whatever author data you need into the Book aggregate upon adding the new book so that any subsequent commands have enough author data to work with. Now if the Author aggregate needs information about the books written by the author, then it could “subscribe” to the NewBookAdded event (technically … Read more

What is SEDA (Staged Event Driven Architecture)?

Thread Architecture vs Staged Event-Drive Architecture in real life: Imagine you have a restaurant. Now, how it will work? with “Thread Architecture”: A customer arrives Waiter(a) goes to him/her Waiter(a) takes him/her to one available table Waiter(a) takes the order Waiter(a) cooks the order Waiter(a) takes to order to the table Waiter(a) waits until the … Read more

DDD, Anti Corruption layer, how-to?

From the DDD book (Domain-Driven Design: Tackling Complexity in the Heart of Software) by Eric Evans: The public interface of the ANTICORRUPTION LAYER usually appears as a set of SERVICES, although occasionally it can take the form of an ENTITY. and a bit later One way of organizing the design of the ANTICORRUPTION LAYER is … Read more

How do you write a real-time webbased collaboration tool such as google docs?

Google Docs works via operational transformation. The basic idea of operational transformation is to transform (or adjust) the parameters of an editing operation according to the effects of previously executed concurrent operations so that the transformed operation can achieve the correct effect and maintain document consistency. Google produced a video about operational transformation for Google … Read more

How can Google Chrome isolate tabs into separate processes while looking like a single application?

Basically, they use another process that glues them all together into the GUI. Google Chrome creates three different types of processes: browser, renderers, and plug-ins. Browser: There’s only one browser process, which manages the tabs, windows, and “chrome” of the browser. This process also handles all interactions with the disk, network, user input, and display, … Read more

Frameworks vs. SDKs

I’ll just copy from Wikipedia: Library: A library is a collection of subroutines or classes used to develop software. Libraries contain code and data that provide services to independent programs. This allows code and data to be shared and changed in a modular fashion. Framework: A software framework, in computer programming, is an abstraction in … Read more

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