Lancaster Solutions micro-services

The Lancaster Solutions project was a set of full-stack and MEAN stack, multiple domain-specific projects (microservices), each developed to satisfy some specific business needs, but together they function as a large business platform.

The architecture is heavily based on REST APIs and a centralized security solution for internal microservice communication.

Technologies

Symfony, Doctrine, MariaDB, MongoDB, Node.js, Redis, Gearman, REST, Javascript, AngularJS, Docker

Microservices

Here are some examples of Lancaster Solutions Microservices :

Contact

A General purpose, provider-based communication micro-service. It is intended to provide communication needs for all the other micro-services. It doesn’t matter if it is SMS, Email, a phone call or another communication layer, the goal here is to provide a unified interface for whatever the business dictates are necessary.

Helpdesk

Customer management and support platform, intended for managing customers and helping them as necessary. It includes customer features, a ticket system, and support – customer communication channels.

Back office

Being a micro-service itself, it is created to manage the other microservice data. Basically, it is a central system for administrators, affiliates and company owners. Here they can manage their company data, view statistics and customize their solutions.

Job – queuing solution

A Simple, yet powerful queuing solution for providing an internal communication channel between the micro-services. Introduced not only to provide the possibility of sending information from one service to another but also to retain data temporarily and allow the micro-services to process them on a scheduled basis.

Member Zone

A platform for providing a unified environment to the business platforms of other companies. For example, if a country-wide dentist franchise wants to have a unified platform for all their clients, to run marketing tasks, with a unified front-end interface, their front-end can be created here allowing customers the ability to use the full micro-service stack functionality, such as support, etc.

Notifications

A MEAN stack-based notification system for real-time client-side notifications. Powered by Node.JS and Socket.IO technology, this queue-based notification server works lightning fast. Anything that wants to communicate just pushes notifications into the queue and they get displayed via the front-end.

Payment

Provider-based, a general payment solution for handling the sale, authorization, capture, charge-back, refund and 3D secure payment transactions. This micro-service provides a unified interface for multiple payment providers, allowing users to easily switch between them.

Statistics

An Elasticsearch and Symfony based statistics aggregation micro-service. The intention here is to abstract statistics logic and aggregation with REST API. Of course, the elastic search can become less productive as the amount of data grows larger, and it might become necessary to introduce big data solutions, however, when the time comes, it will be easy to migrate.

Subscription

This is the platform for managing different subscription models and corresponding subscriptions. The subscription model defines the business process of the subscription lifetime. The subscription itself is a record, retaining information about the customer and the service to which they have subscribed. This micro-service is also responsible for the management of the corresponding subscription payments.

Dev docs

A special document repository intended for developers. We follow the latest trends in the PHP world and constantly improve our skill-sets with PSR and other code quality standards. But sometimes, this is not enough. So, to fill in the blanks of the code style and quality, we develop our own (with respect to PSR) standards, maintaining the code style and high quality.

As well as coding style, this module also focuses on topics for that are useful for newcomers as they join the development team, enabling them to quickly produce high-quality results, respecting the already produced source and solutions.

In Summary

Developing software this way makes the development process harder and more time-consuming, however, it has the advantage of allowing the repeated use of different functional modules across different systems.

Let's Talk
First name
Last name
Phone
Phone number entered is invalid.
Message*
Message must not be empty.
preloader