Deliver Working Software Frequently
Before you can run, you need to learn how to walk. This is a good primer on agility. Focus first on delivery.
Until you can deliver, work on delivery. Work on nothing else until then. The rest will come in due time.
I reckon your message broker might be a bad idea.
Message brokers can be a bad idea if treated like "infallible gods", because they aren't. Think about three good design principles for realiable systems:
- Fail fast
- Process supervision
- End-to-End principle
In the end, it isn’t so much about message brokers, but treating them as infallible gods. By using acknowledgements, back-pressure and other techniques you can move responsibility out of the brokers and into the edges. What was once a central point of failure becomes an effectively stateless server, no-longer hiding failures from your components. Your system works because it knows that it can fail.
PostgreSQL 9.4 - Looking Up (With JSONB and Logical Decoding)
PostgreSQL 9.4 is going to be exciting with JSONB support. As David Lesches says:
JSONB has been committed to Postgres 9.4, making Postgres the first RDBMS with rock-solid support for schemaless data