Posts

Components of the micro service

 Components of a micro service A micro service is no different from a service in a service orientated architecture. It is a standalone application with an API that is defined. Each API call performs functionality such as updating the database, retrieving data from the database, creating files, sending messages etc.  In our application we will be supporting a REST API  and a MessageQ API. The REST API uses the HTTP protocol. This means our application must have a built in web server that can process HTTP messages and output JSON formatted data.  All synchronous requests will be sent using the REST API. Our API must use HTTP status codes correctly, parse the header records correctly, implement security with bearer tokens (explained in a later blog post). Every service that uses our API must be able to process successful and unsuccessful response codes gracefully.  The MessageQ API uses a queue name and a message with an ID and a payload. All messages will be sent ...

Our implementation

 Our Implementation User Interfaces       client <----------->loadBalancer----->edgeServer1, edgeServer2, edgeServer3   edgeServer receive request and validate parameters break into components and process send async actions to micro services The edgeServer has visibility to the outside world so we want to insulate the software so there is no chance an outside player will be able to access our core services.  The edgeServer will provide an API to the web client but also to the mobile clients. Mobile clients are running Android or IOS applications on their phones or tablets but requesting the same data the web client is requesting. External Interfaces externalVendor<--------------->loadBalancer---->interfaceServer1, interfaceServer2, interfaceServer3 interfaceServer used to send files and/or messages to external vendors (encrypted) used to received files and/or messages from external vendors (encrypted) all files are virus scanned and stored...

Implementing a web application over time

 HTML/Javascript First there was HTML where styles were attributes of the HTML tag and we used Javascript to create simple dynamic components such as a timestamp that updated every second. A web client (a browser) would request a HTML page from a web server using HTTP and a URL, the web server (normally running Apache or NGNX or Tomcat or similar server software) would send the HTML and Javascript files back to the web client to be displayed. The contents of those files were interpreted by the web browser software running on the client and displayed to the user.  HTML/CSS/Javascript Next,  we separated the styles into a separate file and referred to the components we wanted to style. This led to very cool sites like CSS Zen Garden where the same HTML could be themed to look much different just by using a different CSS file containing different styles. Server Based Pages A web client (the browser) calls a webserver which sent back HTML, CSS and Javscript files. Using the s...

First Post - Overview of blog

  About Me Ive been a programmer/analyst/engineer/consultant/company owner/tech lead/team lead/architect for the last 30 years since 1987. Ive worked on many systems, in many languages, with many different stacks and different teams. Ive worked on small systems and very large complex systems.  The Question What does it take to put together a system in 2023. What architecture to use? What tools does a programmer need to know? How does one even start on the design?  The System Lets do a banking system. Lets make it production ready.  The Architecture We want this to be as realistic as possible to show all the components that make up a modern production system and we want to take as modern an approach as possible, so here is our basic architecture Data storage - a combination of RDBMS and NoSql tools Application - web front end, micro-service back-end  Micro-service - each service is a stand alone API driven application Core Library - a library as small  possi...