Showing posts from June, 2018

Software Architecture

This post is an abstract of some chapters in the book 'Software Systems Architecture' by Eoin Woods and Nick Rozanski
Software Architecture Definition Software elements that you need to specify and or design in order to meet a particular set of requirements, plus the hardware required to run those software elements on
Key Parts of the definitionStructure - System’s elements, pieces that can be constructed, and their relationshipsStatic structureSoftware classes, Relational entities, Network, Hardware etcDynamic structureSystem response to an external stimulusInformation flow, parallel/serial execution of tasks, effects on data (create, update, delete)Properties - Fundamental properties of a systemExternally visible propertiesFunctional behaviorQuality propertiesScalability, Performance, Security etcPrinciples - of its design and evolutionFundamental beliefs, approach or intent - that guides the architectureConventions that makes system easily understood and allow extensions i…

Some simple questions that may need some thinking

In this blog post, I have put down some questions that are kind of random questions but they are important questions whenever you develop any software. The answers to these questions depend on the context and require a lot of experience and knowledge to make a good judgment.

Where should I store media images for my web application? Inside web applicationOn a web server In a database On a cloud Where should I write an application log messages?In a local file SyslogRDBMSNoSQL databaseWhere should a client store authentication token?CookiesLocal StorageWhat kind of authentication mechanism should I use for my web application?Stateless session tokensSession IdsWhat should be the format of log file messages?Free text string formatKey-Value Pairs string formatJSONWhat should I use for notifying a service for some action? A message queueA table in a shared databaseCan I use a single load balancer to handle the load of hundreds of application servers behind it?For my new project which database…