In this talk I will present how to use event structures to model weak memory architectures. First, I will show how the causal information of event structures allows us to deal with reorderings in an elegant and compositional way. Second, I will show how some theoretical tools from event structures are very useful to model the interaction between a program and the memory. I will then show how to give different models for the memory that represent different trade-off (theoretical and practical). I will then talk a bit about Data-Race freedom in this setting.