This document discusses Namshi's transition from a monolithic PHP architecture to a microservices architecture using PHP, Node.js, and other technologies. Some of the benefits realized include improved scalability, deployability, and maintainability. Key aspects covered include the use of service-oriented architecture with independent services, HTTP as the communication protocol, RabbitMQ for messaging, and PHP frameworks like Silex for building APIs. The new architecture also aims to be stateless, using JSON Web Tokens for authentication.
22. “A software design based on discrete software
components, "services", that collectively
provide the functionalities of the larger
software application”
– A.Nadalin (@_odino)
23. “Microservice Architecture" […] a particular way of
designing software applications as suites of
independently deployable services…”
– M.Fowler
!
Full Stack is dead!
28. HTTP
A protocol that is almost 25 years old
and is here to stay!
29. GET vs POST
“The difference is that in
a GET request you have the parameters in the url ,
with
a POST the parameters are in the request’s body”
!
answered by 80% of candidates during the interview
37. RabbitMQ
Language and protocol format agnostic
You can easily create an event driven architecture
Messages stay in the queue if a service goes down
Too many messages? add more consumers!
39. PHP -
It follows standards (PSR-*)
Decoupled components
Huge and active opensource community
Easy to plug in your domain code
Not just a framework, but a project…
Designed starting from the HTTP protocol
47. Javascript
Two way data-binding
Single page application
Built-in services on top of XHR
Routing
Controller
Model
it’s a MVW framework: Model-View-Whatever
74. redis
Key types: lists, hashes, sets, sorted sets
Persistent to disk
Up to 512MB per key
Pub/sub
Transactions with optimistic locking
Lua scripting embedded